Skip to content

Custom Templates

albert.resources.custom_templates

Attributes:

Name Type Description
CustomTemplateData
ACLEntry

CustomTemplateData

CustomTemplateData = Annotated[
    _CustomTemplateDataUnion,
    Field(discriminator="category"),
]

ACLEntry

ACLEntry = Annotated[
    TeamACL | OwnerACL | MemberACL | ViewerACL,
    Field(discriminator="type"),
]

CustomTemplateInventoryLot

Bases: BaseAlbertModel

A lot reference within a custom template inventory entry.

Show JSON schema:
{
  "description": "A lot reference within a custom template inventory entry.",
  "properties": {
    "id": {
      "description": "The Albert ID of the lot.",
      "title": "Id",
      "type": "string"
    },
    "barcode": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The barcode of the lot.",
      "title": "Barcode"
    }
  },
  "required": [
    "id"
  ],
  "title": "CustomTemplateInventoryLot",
  "type": "object"
}

Fields:

id

id: str

The Albert ID of the lot.

barcode

barcode: str | None = None

The barcode of the lot.

DataTemplateInventory

Bases: EntityLink

An inventory item reference within a custom template, with batch and lot details.

Show JSON schema:
{
  "$defs": {
    "AuditFields": {
      "description": "The audit fields for a resource",
      "properties": {
        "by": {
          "default": null,
          "title": "By",
          "type": "string"
        },
        "byName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Byname"
        },
        "at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "At"
        }
      },
      "title": "AuditFields",
      "type": "object"
    },
    "CustomTemplateInventoryLot": {
      "description": "A lot reference within a custom template inventory entry.",
      "properties": {
        "id": {
          "description": "The Albert ID of the lot.",
          "title": "Id",
          "type": "string"
        },
        "barcode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The barcode of the lot.",
          "title": "Barcode"
        }
      },
      "required": [
        "id"
      ],
      "title": "CustomTemplateInventoryLot",
      "type": "object"
    },
    "Design": {
      "description": "One section of a Sheet, backing the grid for a single [`DesignType`][albert.resources.sheets.DesignType].\n\nA Sheet is made up of stacked sections (Product Design, Process Design,\nResults, and Apps) and each section is a Design. Designs are largely an\ninternal detail: most work is done through the parent [`Sheet`][albert.resources.sheets.Sheet], which\nexposes its Designs as [`product_design`][albert.resources.sheets.Sheet.product_design],\n[`result_design`][albert.resources.sheets.Sheet.result_design], [`app_design`][albert.resources.sheets.Sheet.app_design], and\n[`process_design`][albert.resources.sheets.Sheet.process_design]. A Design is a live grid element that carries the\nsession and lazily loads its rows, columns, and grid on first access.\nMethods\n-------\ngroup_rows(name, child_row_ids, ...) -> RowGroup\n    Create a named row group within this design.\nget_groups(refresh=False) -> list[RowGroup]\n    Get all row groups in this design.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "state": {
          "anyOf": [
            {
              "$ref": "#/$defs/DesignState"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The display state of the design. Optional. Default is None."
        },
        "albertId": {
          "description": "The Albert ID of the design.",
          "title": "Albertid",
          "type": "string"
        },
        "designType": {
          "anyOf": [
            {
              "$ref": "#/$defs/DesignType"
            },
            {
              "type": "string"
            }
          ],
          "description": "The section of the Sheet this design backs. See [`DesignType`][albert.resources.sheets.DesignType]. Unknown legacy/tenant values parse as plain strings.",
          "title": "Designtype"
        }
      },
      "required": [
        "albertId",
        "designType"
      ],
      "title": "Design",
      "type": "object"
    },
    "DesignState": {
      "description": "The display state of a Design section within a Sheet.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "collapsed": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Whether the Design section is collapsed in the Sheet view. Default is False.",
          "title": "Collapsed"
        }
      },
      "title": "DesignState",
      "type": "object"
    },
    "DesignType": {
      "description": "The section of a Sheet that a Design represents.\n\nA Sheet is organized into stacked sections, each backed by a Design\n([`Design`][albert.resources.sheets.Design]). The type identifies which section:\n\n- ``PRODUCTS``: Product Design, where formulations are built.\n- ``PROCESS``: Process Design.\n- ``RESULTS``: Results, holding Property Tasks and their data.\n- ``APPS``: Apps, holding insights, reporting, and notes.",
      "enum": [
        "apps",
        "products",
        "results",
        "process",
        "reagents"
      ],
      "title": "DesignType",
      "type": "string"
    },
    "EntityLink": {
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLink",
      "type": "object"
    },
    "InventoryCategory": {
      "description": "The kind of material an [`InventoryItem`][albert.resources.inventory.InventoryItem] represents.\n\nEvery inventory item belongs to exactly one category, which determines how it\nis used across the platform and which fields are relevant to it.\n\nAttributes\n----------\nRAW_MATERIALS : str\n    A purchased substance used as an ingredient (e.g. a solvent or pigment).\n    Typically linked to a manufacturing ``company`` and one or more CAS numbers.\nCONSUMABLES : str\n    Lab supplies consumed during work (e.g. gloves, vials, filters).\nEQUIPMENT : str\n    Instruments and apparatus (e.g. a balance or spectrometer).\nFORMULAS : str\n    A mixture designed in Albert through a Worksheet. Formulas are not created\n    through the inventory collection; they are produced by the Worksheet\n    collection ([`WorksheetCollection`][albert.collections.worksheets.WorksheetCollection]).",
      "enum": [
        "RawMaterials",
        "Consumables",
        "Equipment",
        "Formulas"
      ],
      "title": "InventoryCategory",
      "type": "string"
    },
    "Sheet": {
      "description": "An interactive grid within a Worksheet where formulations are built.\n\nA Sheet is one grid inside a Worksheet ([`Worksheet`][albert.resources.worksheets.Worksheet]).\nIt is organized into stacked sections, each a [`Design`][albert.resources.sheets.Design]: Product Design\n(where formulations are built), Process Design, Results (Property Tasks and\ntheir data), and Apps (insights and notes). Access those sections through\n[`product_design`][albert.resources.sheets.Sheet.product_design], [`process_design`][albert.resources.sheets.Sheet.process_design], [`result_design`][albert.resources.sheets.Sheet.result_design], and\n[`app_design`][albert.resources.sheets.Sheet.app_design].\n\nA Sheet Column can be a formulation (the most common case for the SDK), a\nlookup column that displays an inventory attribute, or an ingredient name.\nRows typically represent ingredients (inventory items) and their amounts.\nAdding a formulation to a Sheet is what registers a Formula inventory item.\n\nThe Sheet is a live grid element that carries the session; its cells, columns,\nand rows are themselves interactive. Retrieve a Sheet from a Worksheet's\n[`sheets`][albert.resources.worksheets.Worksheet.sheets], then edit it in place\nwith the methods below.\n\n!!! example\n    ```python\n    from albert import Albert\n    client = Albert()\n    worksheet = client.worksheets.get_by_project_id(project_id=\"PROA9999999\")\n    sheet = worksheet.sheets[0]\n    print(sheet.grid)\n    ```\nMethods\n-------\nrename(new_name) -> Sheet\n    Rename the sheet.\nadd_formulation(formulation_name, components, ...) -> Column\n    Build a formulation column from a list of components (registers a Formula).\nadd_components_to_formulation(components, ...) -> Column\n    Add components to an existing formulation column.\nadd_formulation_columns(formulation_names, ...) -> list[Column]\n    Add one or more empty formulation columns.\nadd_inventory_row(inventory_id, ...) -> Row\n    Add an ingredient (inventory) row.\nadd_blank_row(row_name, ...) -> Row\n    Add a blank row.\nadd_lookup_row(name, ...) -> Row\n    Add a lookup row.\nadd_app_row(app_id, name, ...) -> Row\n    Add an application row.\nadd_parameter_group_row(parameter_group_id, ...) -> Row\n    Add a parameter group (PRG) row to Process Design.\nadd_blank_column(name, ...) -> Column\n    Add a blank column.\nadd_lookup_column(name, ...) -> Column\n    Add a lookup column.\nadd_function_column(name, ...) -> Column\n    Add a function column.\nadd_property_column(name, attribute_id, ...) -> Column\n    Add a property/result column.\nget_column(...) -> Column\n    Retrieve a column by column ID, inventory ID, or name.\nupdate_cells(cells) -> tuple[list[Cell], list[Cell]]\n    Write changed cells back to the sheet.\npin_columns(col_ids, side) -> None\n    Pin columns to the left or right edge.\nunpin_columns(col_ids) -> None\n    Unpin columns.\nlock_column(...) -> Column\n    Lock or unlock a column.\nhide_column(col_id) -> None\n    Hide a column.\nshow_column(col_id) -> None\n    Show a hidden column.\nset_columns_width(col_ids, width) -> None\n    Set the display width of columns.\ndelete_column(column_id) -> None\n    Delete a column.\ndelete_row(row_id, design_id) -> None\n    Delete a row.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "albertId": {
          "description": "The Albert ID of the sheet.",
          "title": "Albertid",
          "type": "string"
        },
        "name": {
          "description": "The name of the sheet.",
          "title": "Name",
          "type": "string"
        },
        "Formulas": {
          "description": "References to the formulations present on the sheet.",
          "items": {
            "$ref": "#/$defs/SheetFormulationRef"
          },
          "title": "Formulas",
          "type": "array"
        },
        "hidden": {
          "description": "Whether the sheet is hidden.",
          "title": "Hidden",
          "type": "boolean"
        },
        "isColumnRight": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "When True, copied columns are placed to the right of the source column; when False, to the left.",
          "title": "Iscolumnright"
        },
        "colSizeMode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Column width sizing mode. Allowed values are ``\"minimum\"`` and ``\"fitToColumn\"``. ``None`` resets to the default grid width.",
          "title": "Colsizemode"
        },
        "Designs": {
          "description": "The Designs (sections) of the sheet.",
          "items": {
            "$ref": "#/$defs/Design"
          },
          "title": "Designs",
          "type": "array"
        },
        "projectId": {
          "description": "The ID of the Project the sheet belongs to (format ``PRO...``).",
          "title": "Projectid",
          "type": "string"
        }
      },
      "required": [
        "albertId",
        "name",
        "hidden",
        "Designs",
        "projectId"
      ],
      "title": "Sheet",
      "type": "object"
    },
    "SheetFormulationRef": {
      "description": "A reference to a formulation in a sheet",
      "properties": {
        "id": {
          "description": "The Albert ID of the inventory item that is the formulation",
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The name of the formulation",
          "title": "Name"
        },
        "hidden": {
          "description": "Whether the formulation is hidden",
          "title": "Hidden",
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "hidden"
      ],
      "title": "SheetFormulationRef",
      "type": "object"
    },
    "Status": {
      "description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n    The resource is fully operational and visible in normal operations.\nINACTIVE : str\n    The resource is hidden from normal operations and disabled from use.",
      "enum": [
        "active",
        "inactive"
      ],
      "title": "Status",
      "type": "string"
    }
  },
  "description": "An inventory item reference within a custom template, with batch and lot details.",
  "properties": {
    "id": {
      "title": "Id",
      "type": "string"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "category": {
      "anyOf": [
        {
          "$ref": "#/$defs/InventoryCategory"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The inventory category of the item."
    },
    "batchSize": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The batch size to use for this inventory item.",
      "title": "Batchsize"
    },
    "sheet": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/Sheet"
              },
              {
                "$ref": "#/$defs/EntityLink"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Sheets associated with this inventory item in the template.",
      "title": "Sheet"
    },
    "Lots": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/CustomTemplateInventoryLot"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Lots associated with this inventory item in the template.",
      "title": "Lots"
    }
  },
  "required": [
    "id"
  ],
  "title": "DataTemplateInventory",
  "type": "object"
}

Fields:

batch_size

batch_size: float | None = None

The batch size to use for this inventory item.

sheet

sheet: list[Sheet | EntityLink] | None = None

Sheets associated with this inventory item in the template.

category

category: InventoryCategory | None = None

The inventory category of the item.

lots

lots: list[CustomTemplateInventoryLot] | None = None

Lots associated with this inventory item in the template.

Bases: EntityLink

A link to a worksheet design with its type.

Show JSON schema:
{
  "$defs": {
    "DesignType": {
      "description": "The section of a Sheet that a Design represents.\n\nA Sheet is organized into stacked sections, each backed by a Design\n([`Design`][albert.resources.sheets.Design]). The type identifies which section:\n\n- ``PRODUCTS``: Product Design, where formulations are built.\n- ``PROCESS``: Process Design.\n- ``RESULTS``: Results, holding Property Tasks and their data.\n- ``APPS``: Apps, holding insights, reporting, and notes.",
      "enum": [
        "apps",
        "products",
        "results",
        "process",
        "reagents"
      ],
      "title": "DesignType",
      "type": "string"
    }
  },
  "description": "A link to a worksheet design with its type.",
  "properties": {
    "id": {
      "title": "Id",
      "type": "string"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "category": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Category"
    },
    "type": {
      "$ref": "#/$defs/DesignType",
      "description": "The design type (apps, products, results, or process)."
    }
  },
  "required": [
    "id",
    "type"
  ],
  "title": "DesignLink",
  "type": "object"
}

Fields:

type

type: DesignType

The design type (apps, products, results, or process).

TemplateEntityType

Bases: BaseAlbertModel

The entity type associated with a custom template.

Show JSON schema:
{
  "description": "The entity type associated with a custom template.",
  "properties": {
    "id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The Albert ID of the entity type.",
      "title": "Id"
    },
    "customCategory": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A custom category name for the entity type.",
      "title": "Customcategory"
    }
  },
  "title": "TemplateEntityType",
  "type": "object"
}

Fields:

id

id: EntityTypeId | None = None

The Albert ID of the entity type.

custom_category

custom_category: str | None = None

A custom category name for the entity type.

TemplateCategory

Bases: str, Enum

The kind of entity a custom template configures.

Attributes:

Name Type Description
PROPERTY_LIST str

A property task template ("Property Task").

PROPERTY str

A property (measurement) template.

BATCH str

A batch (formulation) task template.

SHEET str

A worksheet template.

NOTEBOOK str

A notebook template.

GENERAL str

A general task template.

QC_BATCH str

A batch task template with quality-control steps ("BatchWithQC").

PROPERTY_LIST

PROPERTY_LIST = 'Property Task'

PROPERTY

PROPERTY = 'Property'

BATCH

BATCH = 'Batch'

SHEET

SHEET = 'Sheet'

NOTEBOOK

NOTEBOOK = 'Notebook'

GENERAL

GENERAL = 'General'

QC_BATCH

QC_BATCH = 'BatchWithQC'

Priority

Bases: str, Enum

The priority assigned to a task created from a template.

Attributes:

Name Type Description
LOW str

Low priority.

MEDIUM str

Medium priority.

HIGH str

High priority.

LOW

LOW = 'Low'

MEDIUM

MEDIUM = 'Medium'

HIGH

HIGH = 'High'

GeneralData

Bases: BaseTaggedResource

Show JSON schema:
{
  "$defs": {
    "ACL": {
      "description": "A single access rule for a user.",
      "properties": {
        "id": {
          "description": "The id of the user for which this ACL applies",
          "title": "Id",
          "type": "string"
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Fine-Grain Control Level"
        }
      },
      "required": [
        "id"
      ],
      "title": "ACL",
      "type": "object"
    },
    "AccessControlLevel": {
      "description": "Access control levels you can grant users.",
      "enum": [
        "ProjectOwner",
        "ProjectEditor",
        "ProjectViewer",
        "ProjectAllTask",
        "ProjectStrictViewer",
        "ProjectPropertyTask",
        "InventoryOwner",
        "InventoryViewer",
        "CustomTemplateOwner",
        "CustomTemplateViewer",
        "CASFullAccess"
      ],
      "title": "AccessControlLevel",
      "type": "string"
    },
    "AuditFields": {
      "description": "The audit fields for a resource",
      "properties": {
        "by": {
          "default": null,
          "title": "By",
          "type": "string"
        },
        "byName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Byname"
        },
        "at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "At"
        }
      },
      "title": "AuditFields",
      "type": "object"
    },
    "EntityLink": {
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLink",
      "type": "object"
    },
    "EntityLinkWithName": {
      "description": "EntityLink that includes the name field in serialization.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLinkWithName",
      "type": "object"
    },
    "GridDefault": {
      "description": "The default grid view shown for a project.\n\n- ``PD``: the Property Data grid.\n- ``WKS``: the Worksheet grid.",
      "enum": [
        "PD",
        "WKS"
      ],
      "title": "GridDefault",
      "type": "string"
    },
    "Location": {
      "description": "A physical lab or site location in Albert.\n\nLocations are referenced by Tasks and Inventory Items to record where an\nactivity is performed or where a material lives, and each Location can hold\none or more Storage Locations\n([`StorageLocation`][albert.resources.storage_locations.StorageLocation]). Managed\nthrough [`LocationCollection`][albert.collections.locations.LocationCollection].\n\n!!! example\n    ```python\n    from albert.resources.locations import Location\n    location = Location(\n        name=\"Boston Lab\",\n        latitude=42.3601,\n        longitude=-71.0589,\n        address=\"1 Main St\",\n        country=\"US\",\n    )\n    ```",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The human-readable name of the location.",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the location. Assigned by Albert and populated once the location has been created or retrieved.",
          "title": "Albertid"
        },
        "latitude": {
          "description": "The latitude of the location, in decimal degrees.",
          "title": "Latitude",
          "type": "number"
        },
        "longitude": {
          "description": "The longitude of the location, in decimal degrees.",
          "title": "Longitude",
          "type": "number"
        },
        "address": {
          "description": "The street address of the location.",
          "title": "Address",
          "type": "string"
        },
        "country": {
          "anyOf": [
            {
              "maxLength": 2,
              "minLength": 2,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The two-letter country code of the location (for example, ``\"US\"``).",
          "title": "Country"
        }
      },
      "required": [
        "name",
        "latitude",
        "longitude",
        "address"
      ],
      "title": "Location",
      "type": "object"
    },
    "Priority": {
      "description": "The priority assigned to a task created from a template.\n\nAttributes\n----------\nLOW : str\n    Low priority.\nMEDIUM : str\n    Medium priority.\nHIGH : str\n    High priority.",
      "enum": [
        "Low",
        "Medium",
        "High"
      ],
      "title": "Priority",
      "type": "string"
    },
    "Project": {
      "description": "A project in Albert: the top-level container for a piece of R&D work.\n\nA project groups the formulations designed for the work, its Worksheet (1:1\nwith the project), the Tasks run against it, and the inventory it references.\nCreate and manage projects through the\n[`ProjectCollection`][albert.collections.projects.ProjectCollection] (``client.projects``).\n\nOnly ``description`` is required to build one; it doubles as the project's\ndisplay name. The ``id`` and ``state`` are assigned by Albert and are read\nonly from the client's perspective.\n\n!!! example\n    ```python\n    from albert import Albert\n    from albert.resources.projects import Project, ProjectClass\n    client = Albert()\n    project = client.projects.create(\n        project=Project(\n            description=\"Weatherproof Coatings 2026\",\n            project_class=ProjectClass.SHARED,\n        )\n    )\n    project.id\n    # 'PRO123'\n    ```",
      "properties": {
        "status": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Read-only status string returned by Albert.",
          "title": "Status"
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "description": {
          "description": "Human-readable project name/description (1-2000 characters). Also serves as the project's display name.",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Description",
          "type": "string"
        },
        "Locations": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Location"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "maxItems": 20,
              "minItems": 1,
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The locations the project is associated with. Optional.",
          "title": "Locations"
        },
        "class": {
          "anyOf": [
            {
              "$ref": "#/$defs/ProjectClass"
            },
            {
              "type": "null"
            }
          ],
          "default": "private",
          "description": "Access-control class (private, shared, or confidential). Defaults to private."
        },
        "prefix": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional prefix used when naming entities within the project.",
          "title": "Prefix"
        },
        "appEngg": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Inventory Ids to be added as application engineering",
          "title": "Appengg"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert Project ID (format ``PRO...``). Assigned by Albert and present once the project has been created or retrieved.",
          "title": "Albertid"
        },
        "ACL": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ACL"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "Access-control entries controlling who can access the project. Optional.",
          "title": "Acl"
        },
        "old_api_params": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Read-only. Do not use.",
          "title": "Old Api Params"
        },
        "task_config": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/TaskConfig"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "Default task settings applied to tasks created within the project.",
          "title": "Task Config"
        },
        "grid": {
          "anyOf": [
            {
              "$ref": "#/$defs/GridDefault"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The default grid view (Property Data or Worksheet) shown for the project."
        },
        "Metadata": {
          "anyOf": [
            {
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/EntityLinkWithName"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/EntityLinkWithName"
                        },
                        {
                          "$ref": "#/$defs/EntityLink"
                        }
                      ]
                    },
                    "type": "array"
                  }
                ]
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Custom field values. Allowed keys and values are defined via the Custom Fields API. Optional.",
          "title": "Metadata"
        },
        "state": {
          "anyOf": [
            {
              "$ref": "#/$defs/State"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The project's lifecycle state. Read only on create; can be changed via [`update`][albert.collections.projects.ProjectCollection.update]. Tenant-customized states outside [`State`][albert.resources.projects.State] parse as plain strings.",
          "title": "State"
        }
      },
      "required": [
        "description"
      ],
      "title": "Project",
      "type": "object"
    },
    "ProjectClass": {
      "description": "The access-control class of a project, governing who can see it.\n\n- ``PRIVATE``: visible only to the project's ACL members (the default).\n- ``SHARED``: visible more broadly across the organization.\n- ``CONFIDENTIAL``: restricted, most tightly controlled access.",
      "enum": [
        "shared",
        "confidential",
        "private"
      ],
      "title": "ProjectClass",
      "type": "string"
    },
    "Role": {
      "description": "A named set of access permissions within a tenant.\n\nA role bundles policies that determine what a holder is allowed to do. Roles\nare assigned to users ([`User`][albert.resources.users.User]) and referenced\nby entity ACLs. Roles are typically read from Albert rather than built by\nhand.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the role. Role IDs may contain ``#`` characters. Set once the role is retrieved from Albert.",
          "title": "Albertid"
        },
        "name": {
          "description": "The display name of the role.",
          "title": "Name",
          "type": "string"
        },
        "Policies": {
          "anyOf": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The policies (permission rules) associated with the role.",
          "title": "Policies"
        },
        "tenant": {
          "description": "The ID of the tenant the role belongs to.",
          "title": "Tenant",
          "type": "string"
        },
        "visibility": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the role is visible in the platform's role listings.",
          "title": "Visibility"
        }
      },
      "required": [
        "name",
        "tenant"
      ],
      "title": "Role",
      "type": "object"
    },
    "State": {
      "description": "The lifecycle state of a project.\n\nThe set of allowed states is customizable per tenant via the entity-status\nAPI; these are the platform defaults. Unknown tenant-specific values are\ntolerated as plain strings on [`Project.state`][albert.resources.projects.Project.state].",
      "enum": [
        "Not Started",
        "Active",
        "Closed - Success",
        "Closed - Archived",
        "Just Started",
        "In Progress"
      ],
      "title": "State",
      "type": "string"
    },
    "Status": {
      "description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n    The resource is fully operational and visible in normal operations.\nINACTIVE : str\n    The resource is hidden from normal operations and disabled from use.",
      "enum": [
        "active",
        "inactive"
      ],
      "title": "Status",
      "type": "string"
    },
    "Tag": {
      "description": "A freeform text label used to categorize and connect entities.\n\nTags are shared by name across the platform and can be applied to inventory\nitems, companies, tasks, and other records to group and filter them. Managed\nthrough [`TagCollection`][albert.collections.tags.TagCollection] (``client.tags``);\nthe usual entry point is [`get_or_create`][albert.collections.tags.TagCollection.get_or_create].\n\n!!! example\n    ```python\n    from albert.resources.tags import Tag\n    tag = Tag(tag=\"high-priority\")\n    ```\nMethods\n-------\nfrom_string(tag) -> Tag\n    Build a Tag from its name string.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The name of the tag (its text label).",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the tag (format ``TAG...``). Set when the tag is retrieved from or created in Albert. Methods ------- from_string(tag) -> Tag Build a Tag from its name string.",
          "title": "Albertid"
        }
      },
      "required": [
        "name"
      ],
      "title": "Tag",
      "type": "object"
    },
    "TaskConfig": {
      "description": "Default task settings applied when tasks are created within a project.",
      "properties": {
        "datatemplateId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "ID of the data template tasks default to.",
          "title": "Datatemplateid"
        },
        "workflowId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "ID of the workflow tasks default to.",
          "title": "Workflowid"
        },
        "defaultTaskName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Default name applied to new tasks.",
          "title": "Defaulttaskname"
        },
        "target": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Default target for the configured tasks.",
          "title": "Target"
        },
        "hidden": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Whether this configuration is hidden in the UI.",
          "title": "Hidden"
        }
      },
      "title": "TaskConfig",
      "type": "object"
    },
    "TaskSource": {
      "description": "A reference to the task or template a task was created from.\n\nRecorded in [`sources`][albert.resources.tasks.BaseTask.sources] to trace where a task originated.",
      "properties": {
        "id": {
          "description": "The ID of the originating task or template.",
          "title": "Id",
          "type": "string"
        },
        "type": {
          "$ref": "#/$defs/TaskSourceType",
          "description": "Whether ``id`` points to a task or a template."
        }
      },
      "required": [
        "id",
        "type"
      ],
      "title": "TaskSource",
      "type": "object"
    },
    "TaskSourceType": {
      "description": "What kind of thing a task was created from.\n\nAttributes\n----------\nTASK : str\n    The task was created from another existing task (``\"task\"``).\nTEMPLATE : str\n    The task was created from a task template (``\"template\"``).",
      "enum": [
        "task",
        "template"
      ],
      "title": "TaskSourceType",
      "type": "string"
    },
    "User": {
      "description": "An Albert user account: a person who can log in and act in the platform.\n\nA user has a name and email, an optional home\n[`Location`][albert.resources.locations.Location], and a set of\n[`Role`][albert.resources.roles.Role] objects that govern what they can do.\nThe ``user_class`` sets a broad permission tier\n([`UserClass`][albert.resources.users.UserClass]). Users are grouped into teams\n([`Team`][albert.resources.teams.Team]), and are referenced across the\nplatform, for example as the assignee of a Task or in an entity's ACL.\n\n!!! example\n    ```python\n    from albert.resources.users import User, UserClass\n    user = User(\n        name=\"Ada Lovelace\",\n        email=\"ada@example.com\",\n        user_class=UserClass.STANDARD,\n    )\n    ```",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The display name of the user.",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert User ID (format ``USR...``). Set once the user is registered in or retrieved from Albert.",
          "title": "Albertid"
        },
        "Location": {
          "anyOf": [
            {
              "$ref": "#/$defs/Location"
            },
            {
              "$ref": "#/$defs/EntityLink"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The user's home location.",
          "title": "Location"
        },
        "email": {
          "default": null,
          "description": "The user's email address.",
          "format": "email",
          "title": "Email",
          "type": "string"
        },
        "Roles": {
          "description": "The roles the user holds, which determine their permissions.",
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/Role"
              },
              {
                "$ref": "#/$defs/EntityLink"
              }
            ]
          },
          "maxItems": 1,
          "title": "Roles",
          "type": "array"
        },
        "userClass": {
          "$ref": "#/$defs/UserClass",
          "default": "standard",
          "description": "The ACL class level of the user (broad permission tier)."
        },
        "witnesser": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the user can act as a witness on tasks (only relevant when witnessing is enabled for the tenant).",
          "title": "Witnesser"
        },
        "Metadata": {
          "anyOf": [
            {
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/EntityLinkWithName"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/EntityLinkWithName"
                        },
                        {
                          "$ref": "#/$defs/EntityLink"
                        }
                      ]
                    },
                    "type": "array"
                  }
                ]
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Custom metadata attached to the user.",
          "title": "Metadata"
        }
      },
      "required": [
        "name"
      ],
      "title": "User",
      "type": "object"
    },
    "UserClass": {
      "description": "The ACL class level of a user, setting a broad permission tier.\n\nAttributes\n----------\nGUEST : str\n    Most limited access; typically external or temporary users.\nSTANDARD : str\n    Default access level for regular users.\nTRUSTED : str\n    Elevated access above standard users.\nPRIVILEGED : str\n    High access level below full administrators.\nADMIN : str\n    Full administrative access to the tenant.",
      "enum": [
        "guest",
        "standard",
        "trusted",
        "privileged",
        "admin"
      ],
      "title": "UserClass",
      "type": "string"
    }
  },
  "properties": {
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/Status"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The status of the resource, optional."
    },
    "Created": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the creation of the resource, optional."
    },
    "Updated": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the update of the resource, optional."
    },
    "Tags": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/Tag"
              },
              {
                "$ref": "#/$defs/EntityLink"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A list of Tag objects or strings representing tags.",
      "title": "Tags"
    },
    "category": {
      "const": "General",
      "default": "General",
      "title": "Category",
      "type": "string"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "Project": {
      "anyOf": [
        {
          "$ref": "#/$defs/Project"
        },
        {
          "$ref": "#/$defs/EntityLink"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Project"
    },
    "Location": {
      "anyOf": [
        {
          "$ref": "#/$defs/Location"
        },
        {
          "$ref": "#/$defs/EntityLink"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Location"
    },
    "AssignedTo": {
      "anyOf": [
        {
          "$ref": "#/$defs/User"
        },
        {
          "$ref": "#/$defs/EntityLink"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Assignedto"
    },
    "notebookId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Notebookid"
    },
    "priority": {
      "anyOf": [
        {
          "$ref": "#/$defs/Priority"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "Sources": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/TaskSource"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Sources"
    },
    "parentId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Parentid"
    },
    "Metadata": {
      "anyOf": [
        {
          "additionalProperties": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "integer"
              },
              {
                "type": "string"
              },
              {
                "$ref": "#/$defs/EntityLinkWithName"
              },
              {
                "$ref": "#/$defs/EntityLink"
              },
              {
                "items": {
                  "anyOf": [
                    {
                      "$ref": "#/$defs/EntityLinkWithName"
                    },
                    {
                      "$ref": "#/$defs/EntityLink"
                    }
                  ]
                },
                "type": "array"
              }
            ]
          },
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Metadata"
    },
    "notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Notes"
    }
  },
  "title": "GeneralData",
  "type": "object"
}

Fields:

category

name

name: str | None = None

project

project: SerializeAsEntityLink[Project] | None = None

location

location: SerializeAsEntityLink[Location] | None = None

assigned_to

assigned_to: SerializeAsEntityLink[User] | None = None

notebook_id

notebook_id: NotebookId | None = None

priority

priority: Priority | None = None

sources

sources: list[TaskSource] | None = None

parent_id

parent_id: str | None = None

metadata

metadata: dict[str, MetadataItem] | None = None

notes

notes: str | None = None

JobStatus

Bases: str, Enum

The status of a SAM (self-automating method) configuration job.

Attributes:

Name Type Description
ACTIVE str

The job is active.

INACTIVE str

The job is inactive.

QUEUED str

The job is queued to run.

ACTIVE

ACTIVE = 'active'

INACTIVE

INACTIVE = 'inactive'

QUEUED

QUEUED = 'queued'

SamInput

Bases: BaseResource

An input parameter for a SAM (Sample Analysis Module) configuration.

Show JSON schema:
{
  "$defs": {
    "AuditFields": {
      "description": "The audit fields for a resource",
      "properties": {
        "by": {
          "default": null,
          "title": "By",
          "type": "string"
        },
        "byName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Byname"
        },
        "at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "At"
        }
      },
      "title": "AuditFields",
      "type": "object"
    },
    "Status": {
      "description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n    The resource is fully operational and visible in normal operations.\nINACTIVE : str\n    The resource is hidden from normal operations and disabled from use.",
      "enum": [
        "active",
        "inactive"
      ],
      "title": "Status",
      "type": "string"
    }
  },
  "description": "An input parameter for a SAM (Sample Analysis Module) configuration.",
  "properties": {
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/Status"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The status of the resource, optional."
    },
    "Created": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the creation of the resource, optional."
    },
    "Updated": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the update of the resource, optional."
    },
    "Value": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The value of the input parameter.",
      "title": "Value"
    },
    "Unit": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The unit of the input parameter.",
      "title": "Unit"
    },
    "Name": {
      "description": "The name of the input parameter.",
      "title": "Name",
      "type": "string"
    }
  },
  "required": [
    "Name"
  ],
  "title": "SamInput",
  "type": "object"
}

Fields:

value

value: str | None = None

The value of the input parameter.

unit

unit: str | None = None

The unit of the input parameter.

name

name: str

The name of the input parameter.

SamConfig

Bases: BaseResource

A SAM (Sample Analysis Module) machine configuration.

Show JSON schema:
{
  "$defs": {
    "AuditFields": {
      "description": "The audit fields for a resource",
      "properties": {
        "by": {
          "default": null,
          "title": "By",
          "type": "string"
        },
        "byName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Byname"
        },
        "at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "At"
        }
      },
      "title": "AuditFields",
      "type": "object"
    },
    "JobStatus": {
      "description": "The status of a SAM (self-automating method) configuration job.\n\nAttributes\n----------\nACTIVE : str\n    The job is active.\nINACTIVE : str\n    The job is inactive.\nQUEUED : str\n    The job is queued to run.",
      "enum": [
        "active",
        "inactive",
        "queued"
      ],
      "title": "JobStatus",
      "type": "string"
    },
    "SamInput": {
      "description": "An input parameter for a SAM (Sample Analysis Module) configuration.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "Value": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The value of the input parameter.",
          "title": "Value"
        },
        "Unit": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The unit of the input parameter.",
          "title": "Unit"
        },
        "Name": {
          "description": "The name of the input parameter.",
          "title": "Name",
          "type": "string"
        }
      },
      "required": [
        "Name"
      ],
      "title": "SamInput",
      "type": "object"
    },
    "Status": {
      "description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n    The resource is fully operational and visible in normal operations.\nINACTIVE : str\n    The resource is hidden from normal operations and disabled from use.",
      "enum": [
        "active",
        "inactive"
      ],
      "title": "Status",
      "type": "string"
    }
  },
  "description": "A SAM (Sample Analysis Module) machine configuration.",
  "properties": {
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/JobStatus"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The status of the SAM job."
    },
    "Created": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the creation of the resource, optional."
    },
    "Updated": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the update of the resource, optional."
    },
    "configurationName": {
      "description": "The name of the configuration.",
      "title": "Configurationname",
      "type": "string"
    },
    "configurationId": {
      "description": "The identifier of the configuration.",
      "title": "Configurationid",
      "type": "string"
    },
    "machineId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The identifier of the machine.",
      "title": "Machineid"
    },
    "input": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/SamInput"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The input parameters for this configuration.",
      "title": "Input"
    }
  },
  "required": [
    "configurationName",
    "configurationId"
  ],
  "title": "SamConfig",
  "type": "object"
}

Fields:

configuration_name

configuration_name: str

The name of the configuration.

configurationId

configurationId: str

The identifier of the configuration.

machineId

machineId: str | None = None

The identifier of the machine.

input

input: list[SamInput] | None = None

The input parameters for this configuration.

job_status

job_status: JobStatus | None = None

The status of the SAM job.

Workflow

Bases: BaseResource

A workflow reference within a custom template.

Show JSON schema:
{
  "$defs": {
    "AuditFields": {
      "description": "The audit fields for a resource",
      "properties": {
        "by": {
          "default": null,
          "title": "By",
          "type": "string"
        },
        "byName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Byname"
        },
        "at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "At"
        }
      },
      "title": "AuditFields",
      "type": "object"
    },
    "JobStatus": {
      "description": "The status of a SAM (self-automating method) configuration job.\n\nAttributes\n----------\nACTIVE : str\n    The job is active.\nINACTIVE : str\n    The job is inactive.\nQUEUED : str\n    The job is queued to run.",
      "enum": [
        "active",
        "inactive",
        "queued"
      ],
      "title": "JobStatus",
      "type": "string"
    },
    "SamConfig": {
      "description": "A SAM (Sample Analysis Module) machine configuration.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/JobStatus"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the SAM job."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "configurationName": {
          "description": "The name of the configuration.",
          "title": "Configurationname",
          "type": "string"
        },
        "configurationId": {
          "description": "The identifier of the configuration.",
          "title": "Configurationid",
          "type": "string"
        },
        "machineId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The identifier of the machine.",
          "title": "Machineid"
        },
        "input": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/SamInput"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The input parameters for this configuration.",
          "title": "Input"
        }
      },
      "required": [
        "configurationName",
        "configurationId"
      ],
      "title": "SamConfig",
      "type": "object"
    },
    "SamInput": {
      "description": "An input parameter for a SAM (Sample Analysis Module) configuration.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "Value": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The value of the input parameter.",
          "title": "Value"
        },
        "Unit": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The unit of the input parameter.",
          "title": "Unit"
        },
        "Name": {
          "description": "The name of the input parameter.",
          "title": "Name",
          "type": "string"
        }
      },
      "required": [
        "Name"
      ],
      "title": "SamInput",
      "type": "object"
    },
    "Status": {
      "description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n    The resource is fully operational and visible in normal operations.\nINACTIVE : str\n    The resource is hidden from normal operations and disabled from use.",
      "enum": [
        "active",
        "inactive"
      ],
      "title": "Status",
      "type": "string"
    }
  },
  "description": "A workflow reference within a custom template.",
  "properties": {
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/Status"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The status of the resource, optional."
    },
    "Created": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the creation of the resource, optional."
    },
    "Updated": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the update of the resource, optional."
    },
    "id": {
      "description": "The Albert ID of the workflow.",
      "title": "Id",
      "type": "string"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The name of the workflow.",
      "title": "Name"
    },
    "SamConfig": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/SamConfig"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "SAM configurations associated with this workflow, if any.",
      "title": "Samconfig"
    }
  },
  "required": [
    "id"
  ],
  "title": "Workflow",
  "type": "object"
}

Fields:

id

id: str

The Albert ID of the workflow.

name

name: str | None = None

The name of the workflow.

sam_config

sam_config: list[SamConfig] | None = None

SAM configurations associated with this workflow, if any.

Block

Bases: BaseTaggedResource

Show JSON schema:
{
  "$defs": {
    "AuditFields": {
      "description": "The audit fields for a resource",
      "properties": {
        "by": {
          "default": null,
          "title": "By",
          "type": "string"
        },
        "byName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Byname"
        },
        "at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "At"
        }
      },
      "title": "AuditFields",
      "type": "object"
    },
    "EntityLink": {
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLink",
      "type": "object"
    },
    "JobStatus": {
      "description": "The status of a SAM (self-automating method) configuration job.\n\nAttributes\n----------\nACTIVE : str\n    The job is active.\nINACTIVE : str\n    The job is inactive.\nQUEUED : str\n    The job is queued to run.",
      "enum": [
        "active",
        "inactive",
        "queued"
      ],
      "title": "JobStatus",
      "type": "string"
    },
    "SamConfig": {
      "description": "A SAM (Sample Analysis Module) machine configuration.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/JobStatus"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the SAM job."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "configurationName": {
          "description": "The name of the configuration.",
          "title": "Configurationname",
          "type": "string"
        },
        "configurationId": {
          "description": "The identifier of the configuration.",
          "title": "Configurationid",
          "type": "string"
        },
        "machineId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The identifier of the machine.",
          "title": "Machineid"
        },
        "input": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/SamInput"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The input parameters for this configuration.",
          "title": "Input"
        }
      },
      "required": [
        "configurationName",
        "configurationId"
      ],
      "title": "SamConfig",
      "type": "object"
    },
    "SamInput": {
      "description": "An input parameter for a SAM (Sample Analysis Module) configuration.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "Value": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The value of the input parameter.",
          "title": "Value"
        },
        "Unit": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The unit of the input parameter.",
          "title": "Unit"
        },
        "Name": {
          "description": "The name of the input parameter.",
          "title": "Name",
          "type": "string"
        }
      },
      "required": [
        "Name"
      ],
      "title": "SamInput",
      "type": "object"
    },
    "Status": {
      "description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n    The resource is fully operational and visible in normal operations.\nINACTIVE : str\n    The resource is hidden from normal operations and disabled from use.",
      "enum": [
        "active",
        "inactive"
      ],
      "title": "Status",
      "type": "string"
    },
    "Tag": {
      "description": "A freeform text label used to categorize and connect entities.\n\nTags are shared by name across the platform and can be applied to inventory\nitems, companies, tasks, and other records to group and filter them. Managed\nthrough [`TagCollection`][albert.collections.tags.TagCollection] (``client.tags``);\nthe usual entry point is [`get_or_create`][albert.collections.tags.TagCollection.get_or_create].\n\n!!! example\n    ```python\n    from albert.resources.tags import Tag\n    tag = Tag(tag=\"high-priority\")\n    ```\nMethods\n-------\nfrom_string(tag) -> Tag\n    Build a Tag from its name string.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The name of the tag (its text label).",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the tag (format ``TAG...``). Set when the tag is retrieved from or created in Albert. Methods ------- from_string(tag) -> Tag Build a Tag from its name string.",
          "title": "Albertid"
        }
      },
      "required": [
        "name"
      ],
      "title": "Tag",
      "type": "object"
    },
    "Workflow": {
      "description": "A workflow reference within a custom template.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "id": {
          "description": "The Albert ID of the workflow.",
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The name of the workflow.",
          "title": "Name"
        },
        "SamConfig": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/SamConfig"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "SAM configurations associated with this workflow, if any.",
          "title": "Samconfig"
        }
      },
      "required": [
        "id"
      ],
      "title": "Workflow",
      "type": "object"
    }
  },
  "properties": {
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/Status"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The status of the resource, optional."
    },
    "Created": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the creation of the resource, optional."
    },
    "Updated": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the update of the resource, optional."
    },
    "Tags": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/Tag"
              },
              {
                "$ref": "#/$defs/EntityLink"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A list of Tag objects or strings representing tags.",
      "title": "Tags"
    },
    "Workflow": {
      "default": null,
      "items": {
        "$ref": "#/$defs/Workflow"
      },
      "title": "Workflow",
      "type": "array"
    },
    "Datatemplate": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/EntityLink"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Datatemplate"
    }
  },
  "title": "Block",
  "type": "object"
}

Fields:

workflow

workflow: list[Workflow] = None

datatemplate

datatemplate: list[EntityLink] | None = None

QCBatchData

Bases: BaseTaggedResource

Show JSON schema:
{
  "$defs": {
    "ACL": {
      "description": "A single access rule for a user.",
      "properties": {
        "id": {
          "description": "The id of the user for which this ACL applies",
          "title": "Id",
          "type": "string"
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Fine-Grain Control Level"
        }
      },
      "required": [
        "id"
      ],
      "title": "ACL",
      "type": "object"
    },
    "AccessControlLevel": {
      "description": "Access control levels you can grant users.",
      "enum": [
        "ProjectOwner",
        "ProjectEditor",
        "ProjectViewer",
        "ProjectAllTask",
        "ProjectStrictViewer",
        "ProjectPropertyTask",
        "InventoryOwner",
        "InventoryViewer",
        "CustomTemplateOwner",
        "CustomTemplateViewer",
        "CASFullAccess"
      ],
      "title": "AccessControlLevel",
      "type": "string"
    },
    "AuditFields": {
      "description": "The audit fields for a resource",
      "properties": {
        "by": {
          "default": null,
          "title": "By",
          "type": "string"
        },
        "byName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Byname"
        },
        "at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "At"
        }
      },
      "title": "AuditFields",
      "type": "object"
    },
    "CustomTemplateInventoryLot": {
      "description": "A lot reference within a custom template inventory entry.",
      "properties": {
        "id": {
          "description": "The Albert ID of the lot.",
          "title": "Id",
          "type": "string"
        },
        "barcode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The barcode of the lot.",
          "title": "Barcode"
        }
      },
      "required": [
        "id"
      ],
      "title": "CustomTemplateInventoryLot",
      "type": "object"
    },
    "DataTemplateInventory": {
      "description": "An inventory item reference within a custom template, with batch and lot details.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "$ref": "#/$defs/InventoryCategory"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The inventory category of the item."
        },
        "batchSize": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The batch size to use for this inventory item.",
          "title": "Batchsize"
        },
        "sheet": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Sheet"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Sheets associated with this inventory item in the template.",
          "title": "Sheet"
        },
        "Lots": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/CustomTemplateInventoryLot"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Lots associated with this inventory item in the template.",
          "title": "Lots"
        }
      },
      "required": [
        "id"
      ],
      "title": "DataTemplateInventory",
      "type": "object"
    },
    "Design": {
      "description": "One section of a Sheet, backing the grid for a single [`DesignType`][albert.resources.sheets.DesignType].\n\nA Sheet is made up of stacked sections (Product Design, Process Design,\nResults, and Apps) and each section is a Design. Designs are largely an\ninternal detail: most work is done through the parent [`Sheet`][albert.resources.sheets.Sheet], which\nexposes its Designs as [`product_design`][albert.resources.sheets.Sheet.product_design],\n[`result_design`][albert.resources.sheets.Sheet.result_design], [`app_design`][albert.resources.sheets.Sheet.app_design], and\n[`process_design`][albert.resources.sheets.Sheet.process_design]. A Design is a live grid element that carries the\nsession and lazily loads its rows, columns, and grid on first access.\nMethods\n-------\ngroup_rows(name, child_row_ids, ...) -> RowGroup\n    Create a named row group within this design.\nget_groups(refresh=False) -> list[RowGroup]\n    Get all row groups in this design.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "state": {
          "anyOf": [
            {
              "$ref": "#/$defs/DesignState"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The display state of the design. Optional. Default is None."
        },
        "albertId": {
          "description": "The Albert ID of the design.",
          "title": "Albertid",
          "type": "string"
        },
        "designType": {
          "anyOf": [
            {
              "$ref": "#/$defs/DesignType"
            },
            {
              "type": "string"
            }
          ],
          "description": "The section of the Sheet this design backs. See [`DesignType`][albert.resources.sheets.DesignType]. Unknown legacy/tenant values parse as plain strings.",
          "title": "Designtype"
        }
      },
      "required": [
        "albertId",
        "designType"
      ],
      "title": "Design",
      "type": "object"
    },
    "DesignState": {
      "description": "The display state of a Design section within a Sheet.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "collapsed": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Whether the Design section is collapsed in the Sheet view. Default is False.",
          "title": "Collapsed"
        }
      },
      "title": "DesignState",
      "type": "object"
    },
    "DesignType": {
      "description": "The section of a Sheet that a Design represents.\n\nA Sheet is organized into stacked sections, each backed by a Design\n([`Design`][albert.resources.sheets.Design]). The type identifies which section:\n\n- ``PRODUCTS``: Product Design, where formulations are built.\n- ``PROCESS``: Process Design.\n- ``RESULTS``: Results, holding Property Tasks and their data.\n- ``APPS``: Apps, holding insights, reporting, and notes.",
      "enum": [
        "apps",
        "products",
        "results",
        "process",
        "reagents"
      ],
      "title": "DesignType",
      "type": "string"
    },
    "EntityLink": {
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLink",
      "type": "object"
    },
    "EntityLinkWithName": {
      "description": "EntityLink that includes the name field in serialization.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLinkWithName",
      "type": "object"
    },
    "GridDefault": {
      "description": "The default grid view shown for a project.\n\n- ``PD``: the Property Data grid.\n- ``WKS``: the Worksheet grid.",
      "enum": [
        "PD",
        "WKS"
      ],
      "title": "GridDefault",
      "type": "string"
    },
    "InventoryCategory": {
      "description": "The kind of material an [`InventoryItem`][albert.resources.inventory.InventoryItem] represents.\n\nEvery inventory item belongs to exactly one category, which determines how it\nis used across the platform and which fields are relevant to it.\n\nAttributes\n----------\nRAW_MATERIALS : str\n    A purchased substance used as an ingredient (e.g. a solvent or pigment).\n    Typically linked to a manufacturing ``company`` and one or more CAS numbers.\nCONSUMABLES : str\n    Lab supplies consumed during work (e.g. gloves, vials, filters).\nEQUIPMENT : str\n    Instruments and apparatus (e.g. a balance or spectrometer).\nFORMULAS : str\n    A mixture designed in Albert through a Worksheet. Formulas are not created\n    through the inventory collection; they are produced by the Worksheet\n    collection ([`WorksheetCollection`][albert.collections.worksheets.WorksheetCollection]).",
      "enum": [
        "RawMaterials",
        "Consumables",
        "Equipment",
        "Formulas"
      ],
      "title": "InventoryCategory",
      "type": "string"
    },
    "Location": {
      "description": "A physical lab or site location in Albert.\n\nLocations are referenced by Tasks and Inventory Items to record where an\nactivity is performed or where a material lives, and each Location can hold\none or more Storage Locations\n([`StorageLocation`][albert.resources.storage_locations.StorageLocation]). Managed\nthrough [`LocationCollection`][albert.collections.locations.LocationCollection].\n\n!!! example\n    ```python\n    from albert.resources.locations import Location\n    location = Location(\n        name=\"Boston Lab\",\n        latitude=42.3601,\n        longitude=-71.0589,\n        address=\"1 Main St\",\n        country=\"US\",\n    )\n    ```",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The human-readable name of the location.",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the location. Assigned by Albert and populated once the location has been created or retrieved.",
          "title": "Albertid"
        },
        "latitude": {
          "description": "The latitude of the location, in decimal degrees.",
          "title": "Latitude",
          "type": "number"
        },
        "longitude": {
          "description": "The longitude of the location, in decimal degrees.",
          "title": "Longitude",
          "type": "number"
        },
        "address": {
          "description": "The street address of the location.",
          "title": "Address",
          "type": "string"
        },
        "country": {
          "anyOf": [
            {
              "maxLength": 2,
              "minLength": 2,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The two-letter country code of the location (for example, ``\"US\"``).",
          "title": "Country"
        }
      },
      "required": [
        "name",
        "latitude",
        "longitude",
        "address"
      ],
      "title": "Location",
      "type": "object"
    },
    "Priority": {
      "description": "The priority assigned to a task created from a template.\n\nAttributes\n----------\nLOW : str\n    Low priority.\nMEDIUM : str\n    Medium priority.\nHIGH : str\n    High priority.",
      "enum": [
        "Low",
        "Medium",
        "High"
      ],
      "title": "Priority",
      "type": "string"
    },
    "Project": {
      "description": "A project in Albert: the top-level container for a piece of R&D work.\n\nA project groups the formulations designed for the work, its Worksheet (1:1\nwith the project), the Tasks run against it, and the inventory it references.\nCreate and manage projects through the\n[`ProjectCollection`][albert.collections.projects.ProjectCollection] (``client.projects``).\n\nOnly ``description`` is required to build one; it doubles as the project's\ndisplay name. The ``id`` and ``state`` are assigned by Albert and are read\nonly from the client's perspective.\n\n!!! example\n    ```python\n    from albert import Albert\n    from albert.resources.projects import Project, ProjectClass\n    client = Albert()\n    project = client.projects.create(\n        project=Project(\n            description=\"Weatherproof Coatings 2026\",\n            project_class=ProjectClass.SHARED,\n        )\n    )\n    project.id\n    # 'PRO123'\n    ```",
      "properties": {
        "status": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Read-only status string returned by Albert.",
          "title": "Status"
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "description": {
          "description": "Human-readable project name/description (1-2000 characters). Also serves as the project's display name.",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Description",
          "type": "string"
        },
        "Locations": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Location"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "maxItems": 20,
              "minItems": 1,
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The locations the project is associated with. Optional.",
          "title": "Locations"
        },
        "class": {
          "anyOf": [
            {
              "$ref": "#/$defs/ProjectClass"
            },
            {
              "type": "null"
            }
          ],
          "default": "private",
          "description": "Access-control class (private, shared, or confidential). Defaults to private."
        },
        "prefix": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional prefix used when naming entities within the project.",
          "title": "Prefix"
        },
        "appEngg": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Inventory Ids to be added as application engineering",
          "title": "Appengg"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert Project ID (format ``PRO...``). Assigned by Albert and present once the project has been created or retrieved.",
          "title": "Albertid"
        },
        "ACL": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ACL"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "Access-control entries controlling who can access the project. Optional.",
          "title": "Acl"
        },
        "old_api_params": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Read-only. Do not use.",
          "title": "Old Api Params"
        },
        "task_config": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/TaskConfig"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "Default task settings applied to tasks created within the project.",
          "title": "Task Config"
        },
        "grid": {
          "anyOf": [
            {
              "$ref": "#/$defs/GridDefault"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The default grid view (Property Data or Worksheet) shown for the project."
        },
        "Metadata": {
          "anyOf": [
            {
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/EntityLinkWithName"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/EntityLinkWithName"
                        },
                        {
                          "$ref": "#/$defs/EntityLink"
                        }
                      ]
                    },
                    "type": "array"
                  }
                ]
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Custom field values. Allowed keys and values are defined via the Custom Fields API. Optional.",
          "title": "Metadata"
        },
        "state": {
          "anyOf": [
            {
              "$ref": "#/$defs/State"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The project's lifecycle state. Read only on create; can be changed via [`update`][albert.collections.projects.ProjectCollection.update]. Tenant-customized states outside [`State`][albert.resources.projects.State] parse as plain strings.",
          "title": "State"
        }
      },
      "required": [
        "description"
      ],
      "title": "Project",
      "type": "object"
    },
    "ProjectClass": {
      "description": "The access-control class of a project, governing who can see it.\n\n- ``PRIVATE``: visible only to the project's ACL members (the default).\n- ``SHARED``: visible more broadly across the organization.\n- ``CONFIDENTIAL``: restricted, most tightly controlled access.",
      "enum": [
        "shared",
        "confidential",
        "private"
      ],
      "title": "ProjectClass",
      "type": "string"
    },
    "Sheet": {
      "description": "An interactive grid within a Worksheet where formulations are built.\n\nA Sheet is one grid inside a Worksheet ([`Worksheet`][albert.resources.worksheets.Worksheet]).\nIt is organized into stacked sections, each a [`Design`][albert.resources.sheets.Design]: Product Design\n(where formulations are built), Process Design, Results (Property Tasks and\ntheir data), and Apps (insights and notes). Access those sections through\n[`product_design`][albert.resources.sheets.Sheet.product_design], [`process_design`][albert.resources.sheets.Sheet.process_design], [`result_design`][albert.resources.sheets.Sheet.result_design], and\n[`app_design`][albert.resources.sheets.Sheet.app_design].\n\nA Sheet Column can be a formulation (the most common case for the SDK), a\nlookup column that displays an inventory attribute, or an ingredient name.\nRows typically represent ingredients (inventory items) and their amounts.\nAdding a formulation to a Sheet is what registers a Formula inventory item.\n\nThe Sheet is a live grid element that carries the session; its cells, columns,\nand rows are themselves interactive. Retrieve a Sheet from a Worksheet's\n[`sheets`][albert.resources.worksheets.Worksheet.sheets], then edit it in place\nwith the methods below.\n\n!!! example\n    ```python\n    from albert import Albert\n    client = Albert()\n    worksheet = client.worksheets.get_by_project_id(project_id=\"PROA9999999\")\n    sheet = worksheet.sheets[0]\n    print(sheet.grid)\n    ```\nMethods\n-------\nrename(new_name) -> Sheet\n    Rename the sheet.\nadd_formulation(formulation_name, components, ...) -> Column\n    Build a formulation column from a list of components (registers a Formula).\nadd_components_to_formulation(components, ...) -> Column\n    Add components to an existing formulation column.\nadd_formulation_columns(formulation_names, ...) -> list[Column]\n    Add one or more empty formulation columns.\nadd_inventory_row(inventory_id, ...) -> Row\n    Add an ingredient (inventory) row.\nadd_blank_row(row_name, ...) -> Row\n    Add a blank row.\nadd_lookup_row(name, ...) -> Row\n    Add a lookup row.\nadd_app_row(app_id, name, ...) -> Row\n    Add an application row.\nadd_parameter_group_row(parameter_group_id, ...) -> Row\n    Add a parameter group (PRG) row to Process Design.\nadd_blank_column(name, ...) -> Column\n    Add a blank column.\nadd_lookup_column(name, ...) -> Column\n    Add a lookup column.\nadd_function_column(name, ...) -> Column\n    Add a function column.\nadd_property_column(name, attribute_id, ...) -> Column\n    Add a property/result column.\nget_column(...) -> Column\n    Retrieve a column by column ID, inventory ID, or name.\nupdate_cells(cells) -> tuple[list[Cell], list[Cell]]\n    Write changed cells back to the sheet.\npin_columns(col_ids, side) -> None\n    Pin columns to the left or right edge.\nunpin_columns(col_ids) -> None\n    Unpin columns.\nlock_column(...) -> Column\n    Lock or unlock a column.\nhide_column(col_id) -> None\n    Hide a column.\nshow_column(col_id) -> None\n    Show a hidden column.\nset_columns_width(col_ids, width) -> None\n    Set the display width of columns.\ndelete_column(column_id) -> None\n    Delete a column.\ndelete_row(row_id, design_id) -> None\n    Delete a row.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "albertId": {
          "description": "The Albert ID of the sheet.",
          "title": "Albertid",
          "type": "string"
        },
        "name": {
          "description": "The name of the sheet.",
          "title": "Name",
          "type": "string"
        },
        "Formulas": {
          "description": "References to the formulations present on the sheet.",
          "items": {
            "$ref": "#/$defs/SheetFormulationRef"
          },
          "title": "Formulas",
          "type": "array"
        },
        "hidden": {
          "description": "Whether the sheet is hidden.",
          "title": "Hidden",
          "type": "boolean"
        },
        "isColumnRight": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "When True, copied columns are placed to the right of the source column; when False, to the left.",
          "title": "Iscolumnright"
        },
        "colSizeMode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Column width sizing mode. Allowed values are ``\"minimum\"`` and ``\"fitToColumn\"``. ``None`` resets to the default grid width.",
          "title": "Colsizemode"
        },
        "Designs": {
          "description": "The Designs (sections) of the sheet.",
          "items": {
            "$ref": "#/$defs/Design"
          },
          "title": "Designs",
          "type": "array"
        },
        "projectId": {
          "description": "The ID of the Project the sheet belongs to (format ``PRO...``).",
          "title": "Projectid",
          "type": "string"
        }
      },
      "required": [
        "albertId",
        "name",
        "hidden",
        "Designs",
        "projectId"
      ],
      "title": "Sheet",
      "type": "object"
    },
    "SheetFormulationRef": {
      "description": "A reference to a formulation in a sheet",
      "properties": {
        "id": {
          "description": "The Albert ID of the inventory item that is the formulation",
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The name of the formulation",
          "title": "Name"
        },
        "hidden": {
          "description": "Whether the formulation is hidden",
          "title": "Hidden",
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "hidden"
      ],
      "title": "SheetFormulationRef",
      "type": "object"
    },
    "State": {
      "description": "The lifecycle state of a project.\n\nThe set of allowed states is customizable per tenant via the entity-status\nAPI; these are the platform defaults. Unknown tenant-specific values are\ntolerated as plain strings on [`Project.state`][albert.resources.projects.Project.state].",
      "enum": [
        "Not Started",
        "Active",
        "Closed - Success",
        "Closed - Archived",
        "Just Started",
        "In Progress"
      ],
      "title": "State",
      "type": "string"
    },
    "Status": {
      "description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n    The resource is fully operational and visible in normal operations.\nINACTIVE : str\n    The resource is hidden from normal operations and disabled from use.",
      "enum": [
        "active",
        "inactive"
      ],
      "title": "Status",
      "type": "string"
    },
    "Tag": {
      "description": "A freeform text label used to categorize and connect entities.\n\nTags are shared by name across the platform and can be applied to inventory\nitems, companies, tasks, and other records to group and filter them. Managed\nthrough [`TagCollection`][albert.collections.tags.TagCollection] (``client.tags``);\nthe usual entry point is [`get_or_create`][albert.collections.tags.TagCollection.get_or_create].\n\n!!! example\n    ```python\n    from albert.resources.tags import Tag\n    tag = Tag(tag=\"high-priority\")\n    ```\nMethods\n-------\nfrom_string(tag) -> Tag\n    Build a Tag from its name string.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The name of the tag (its text label).",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the tag (format ``TAG...``). Set when the tag is retrieved from or created in Albert. Methods ------- from_string(tag) -> Tag Build a Tag from its name string.",
          "title": "Albertid"
        }
      },
      "required": [
        "name"
      ],
      "title": "Tag",
      "type": "object"
    },
    "TaskConfig": {
      "description": "Default task settings applied when tasks are created within a project.",
      "properties": {
        "datatemplateId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "ID of the data template tasks default to.",
          "title": "Datatemplateid"
        },
        "workflowId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "ID of the workflow tasks default to.",
          "title": "Workflowid"
        },
        "defaultTaskName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Default name applied to new tasks.",
          "title": "Defaulttaskname"
        },
        "target": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Default target for the configured tasks.",
          "title": "Target"
        },
        "hidden": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Whether this configuration is hidden in the UI.",
          "title": "Hidden"
        }
      },
      "title": "TaskConfig",
      "type": "object"
    }
  },
  "properties": {
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/Status"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The status of the resource, optional."
    },
    "Created": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the creation of the resource, optional."
    },
    "Updated": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the update of the resource, optional."
    },
    "Tags": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/Tag"
              },
              {
                "$ref": "#/$defs/EntityLink"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A list of Tag objects or strings representing tags.",
      "title": "Tags"
    },
    "category": {
      "const": "BatchWithQC",
      "default": "BatchWithQC",
      "title": "Category",
      "type": "string"
    },
    "Project": {
      "anyOf": [
        {
          "$ref": "#/$defs/Project"
        },
        {
          "$ref": "#/$defs/EntityLink"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Project"
    },
    "Inventories": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/DataTemplateInventory"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Inventories"
    },
    "Workflow": {
      "default": null,
      "items": {
        "$ref": "#/$defs/EntityLink"
      },
      "title": "Workflow",
      "type": "array"
    },
    "Location": {
      "anyOf": [
        {
          "$ref": "#/$defs/Location"
        },
        {
          "$ref": "#/$defs/EntityLink"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Location"
    },
    "batchSizeUnit": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Batchsizeunit"
    },
    "batchSize": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Batchsize"
    },
    "priority": {
      "$ref": "#/$defs/Priority"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    }
  },
  "required": [
    "priority"
  ],
  "title": "QCBatchData",
  "type": "object"
}

Fields:

category

project

project: SerializeAsEntityLink[Project] | None = None

inventories

inventories: list[DataTemplateInventory] | None = None

workflow

workflow: list[EntityLink] = None

location

location: SerializeAsEntityLink[Location] | None = None

batch_size_unit

batch_size_unit: str | None = None

batch_size

batch_size: str | None = None

priority

priority: Priority

name

name: str | None = None

BatchData

Bases: BaseTaggedResource

Show JSON schema:
{
  "$defs": {
    "ACL": {
      "description": "A single access rule for a user.",
      "properties": {
        "id": {
          "description": "The id of the user for which this ACL applies",
          "title": "Id",
          "type": "string"
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Fine-Grain Control Level"
        }
      },
      "required": [
        "id"
      ],
      "title": "ACL",
      "type": "object"
    },
    "AccessControlLevel": {
      "description": "Access control levels you can grant users.",
      "enum": [
        "ProjectOwner",
        "ProjectEditor",
        "ProjectViewer",
        "ProjectAllTask",
        "ProjectStrictViewer",
        "ProjectPropertyTask",
        "InventoryOwner",
        "InventoryViewer",
        "CustomTemplateOwner",
        "CustomTemplateViewer",
        "CASFullAccess"
      ],
      "title": "AccessControlLevel",
      "type": "string"
    },
    "AuditFields": {
      "description": "The audit fields for a resource",
      "properties": {
        "by": {
          "default": null,
          "title": "By",
          "type": "string"
        },
        "byName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Byname"
        },
        "at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "At"
        }
      },
      "title": "AuditFields",
      "type": "object"
    },
    "CustomTemplateInventoryLot": {
      "description": "A lot reference within a custom template inventory entry.",
      "properties": {
        "id": {
          "description": "The Albert ID of the lot.",
          "title": "Id",
          "type": "string"
        },
        "barcode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The barcode of the lot.",
          "title": "Barcode"
        }
      },
      "required": [
        "id"
      ],
      "title": "CustomTemplateInventoryLot",
      "type": "object"
    },
    "DataTemplateInventory": {
      "description": "An inventory item reference within a custom template, with batch and lot details.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "$ref": "#/$defs/InventoryCategory"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The inventory category of the item."
        },
        "batchSize": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The batch size to use for this inventory item.",
          "title": "Batchsize"
        },
        "sheet": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Sheet"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Sheets associated with this inventory item in the template.",
          "title": "Sheet"
        },
        "Lots": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/CustomTemplateInventoryLot"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Lots associated with this inventory item in the template.",
          "title": "Lots"
        }
      },
      "required": [
        "id"
      ],
      "title": "DataTemplateInventory",
      "type": "object"
    },
    "Design": {
      "description": "One section of a Sheet, backing the grid for a single [`DesignType`][albert.resources.sheets.DesignType].\n\nA Sheet is made up of stacked sections (Product Design, Process Design,\nResults, and Apps) and each section is a Design. Designs are largely an\ninternal detail: most work is done through the parent [`Sheet`][albert.resources.sheets.Sheet], which\nexposes its Designs as [`product_design`][albert.resources.sheets.Sheet.product_design],\n[`result_design`][albert.resources.sheets.Sheet.result_design], [`app_design`][albert.resources.sheets.Sheet.app_design], and\n[`process_design`][albert.resources.sheets.Sheet.process_design]. A Design is a live grid element that carries the\nsession and lazily loads its rows, columns, and grid on first access.\nMethods\n-------\ngroup_rows(name, child_row_ids, ...) -> RowGroup\n    Create a named row group within this design.\nget_groups(refresh=False) -> list[RowGroup]\n    Get all row groups in this design.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "state": {
          "anyOf": [
            {
              "$ref": "#/$defs/DesignState"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The display state of the design. Optional. Default is None."
        },
        "albertId": {
          "description": "The Albert ID of the design.",
          "title": "Albertid",
          "type": "string"
        },
        "designType": {
          "anyOf": [
            {
              "$ref": "#/$defs/DesignType"
            },
            {
              "type": "string"
            }
          ],
          "description": "The section of the Sheet this design backs. See [`DesignType`][albert.resources.sheets.DesignType]. Unknown legacy/tenant values parse as plain strings.",
          "title": "Designtype"
        }
      },
      "required": [
        "albertId",
        "designType"
      ],
      "title": "Design",
      "type": "object"
    },
    "DesignState": {
      "description": "The display state of a Design section within a Sheet.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "collapsed": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Whether the Design section is collapsed in the Sheet view. Default is False.",
          "title": "Collapsed"
        }
      },
      "title": "DesignState",
      "type": "object"
    },
    "DesignType": {
      "description": "The section of a Sheet that a Design represents.\n\nA Sheet is organized into stacked sections, each backed by a Design\n([`Design`][albert.resources.sheets.Design]). The type identifies which section:\n\n- ``PRODUCTS``: Product Design, where formulations are built.\n- ``PROCESS``: Process Design.\n- ``RESULTS``: Results, holding Property Tasks and their data.\n- ``APPS``: Apps, holding insights, reporting, and notes.",
      "enum": [
        "apps",
        "products",
        "results",
        "process",
        "reagents"
      ],
      "title": "DesignType",
      "type": "string"
    },
    "EntityLink": {
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLink",
      "type": "object"
    },
    "EntityLinkWithName": {
      "description": "EntityLink that includes the name field in serialization.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLinkWithName",
      "type": "object"
    },
    "GridDefault": {
      "description": "The default grid view shown for a project.\n\n- ``PD``: the Property Data grid.\n- ``WKS``: the Worksheet grid.",
      "enum": [
        "PD",
        "WKS"
      ],
      "title": "GridDefault",
      "type": "string"
    },
    "InventoryCategory": {
      "description": "The kind of material an [`InventoryItem`][albert.resources.inventory.InventoryItem] represents.\n\nEvery inventory item belongs to exactly one category, which determines how it\nis used across the platform and which fields are relevant to it.\n\nAttributes\n----------\nRAW_MATERIALS : str\n    A purchased substance used as an ingredient (e.g. a solvent or pigment).\n    Typically linked to a manufacturing ``company`` and one or more CAS numbers.\nCONSUMABLES : str\n    Lab supplies consumed during work (e.g. gloves, vials, filters).\nEQUIPMENT : str\n    Instruments and apparatus (e.g. a balance or spectrometer).\nFORMULAS : str\n    A mixture designed in Albert through a Worksheet. Formulas are not created\n    through the inventory collection; they are produced by the Worksheet\n    collection ([`WorksheetCollection`][albert.collections.worksheets.WorksheetCollection]).",
      "enum": [
        "RawMaterials",
        "Consumables",
        "Equipment",
        "Formulas"
      ],
      "title": "InventoryCategory",
      "type": "string"
    },
    "Location": {
      "description": "A physical lab or site location in Albert.\n\nLocations are referenced by Tasks and Inventory Items to record where an\nactivity is performed or where a material lives, and each Location can hold\none or more Storage Locations\n([`StorageLocation`][albert.resources.storage_locations.StorageLocation]). Managed\nthrough [`LocationCollection`][albert.collections.locations.LocationCollection].\n\n!!! example\n    ```python\n    from albert.resources.locations import Location\n    location = Location(\n        name=\"Boston Lab\",\n        latitude=42.3601,\n        longitude=-71.0589,\n        address=\"1 Main St\",\n        country=\"US\",\n    )\n    ```",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The human-readable name of the location.",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the location. Assigned by Albert and populated once the location has been created or retrieved.",
          "title": "Albertid"
        },
        "latitude": {
          "description": "The latitude of the location, in decimal degrees.",
          "title": "Latitude",
          "type": "number"
        },
        "longitude": {
          "description": "The longitude of the location, in decimal degrees.",
          "title": "Longitude",
          "type": "number"
        },
        "address": {
          "description": "The street address of the location.",
          "title": "Address",
          "type": "string"
        },
        "country": {
          "anyOf": [
            {
              "maxLength": 2,
              "minLength": 2,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The two-letter country code of the location (for example, ``\"US\"``).",
          "title": "Country"
        }
      },
      "required": [
        "name",
        "latitude",
        "longitude",
        "address"
      ],
      "title": "Location",
      "type": "object"
    },
    "Priority": {
      "description": "The priority assigned to a task created from a template.\n\nAttributes\n----------\nLOW : str\n    Low priority.\nMEDIUM : str\n    Medium priority.\nHIGH : str\n    High priority.",
      "enum": [
        "Low",
        "Medium",
        "High"
      ],
      "title": "Priority",
      "type": "string"
    },
    "Project": {
      "description": "A project in Albert: the top-level container for a piece of R&D work.\n\nA project groups the formulations designed for the work, its Worksheet (1:1\nwith the project), the Tasks run against it, and the inventory it references.\nCreate and manage projects through the\n[`ProjectCollection`][albert.collections.projects.ProjectCollection] (``client.projects``).\n\nOnly ``description`` is required to build one; it doubles as the project's\ndisplay name. The ``id`` and ``state`` are assigned by Albert and are read\nonly from the client's perspective.\n\n!!! example\n    ```python\n    from albert import Albert\n    from albert.resources.projects import Project, ProjectClass\n    client = Albert()\n    project = client.projects.create(\n        project=Project(\n            description=\"Weatherproof Coatings 2026\",\n            project_class=ProjectClass.SHARED,\n        )\n    )\n    project.id\n    # 'PRO123'\n    ```",
      "properties": {
        "status": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Read-only status string returned by Albert.",
          "title": "Status"
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "description": {
          "description": "Human-readable project name/description (1-2000 characters). Also serves as the project's display name.",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Description",
          "type": "string"
        },
        "Locations": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Location"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "maxItems": 20,
              "minItems": 1,
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The locations the project is associated with. Optional.",
          "title": "Locations"
        },
        "class": {
          "anyOf": [
            {
              "$ref": "#/$defs/ProjectClass"
            },
            {
              "type": "null"
            }
          ],
          "default": "private",
          "description": "Access-control class (private, shared, or confidential). Defaults to private."
        },
        "prefix": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional prefix used when naming entities within the project.",
          "title": "Prefix"
        },
        "appEngg": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Inventory Ids to be added as application engineering",
          "title": "Appengg"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert Project ID (format ``PRO...``). Assigned by Albert and present once the project has been created or retrieved.",
          "title": "Albertid"
        },
        "ACL": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ACL"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "Access-control entries controlling who can access the project. Optional.",
          "title": "Acl"
        },
        "old_api_params": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Read-only. Do not use.",
          "title": "Old Api Params"
        },
        "task_config": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/TaskConfig"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "Default task settings applied to tasks created within the project.",
          "title": "Task Config"
        },
        "grid": {
          "anyOf": [
            {
              "$ref": "#/$defs/GridDefault"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The default grid view (Property Data or Worksheet) shown for the project."
        },
        "Metadata": {
          "anyOf": [
            {
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/EntityLinkWithName"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/EntityLinkWithName"
                        },
                        {
                          "$ref": "#/$defs/EntityLink"
                        }
                      ]
                    },
                    "type": "array"
                  }
                ]
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Custom field values. Allowed keys and values are defined via the Custom Fields API. Optional.",
          "title": "Metadata"
        },
        "state": {
          "anyOf": [
            {
              "$ref": "#/$defs/State"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The project's lifecycle state. Read only on create; can be changed via [`update`][albert.collections.projects.ProjectCollection.update]. Tenant-customized states outside [`State`][albert.resources.projects.State] parse as plain strings.",
          "title": "State"
        }
      },
      "required": [
        "description"
      ],
      "title": "Project",
      "type": "object"
    },
    "ProjectClass": {
      "description": "The access-control class of a project, governing who can see it.\n\n- ``PRIVATE``: visible only to the project's ACL members (the default).\n- ``SHARED``: visible more broadly across the organization.\n- ``CONFIDENTIAL``: restricted, most tightly controlled access.",
      "enum": [
        "shared",
        "confidential",
        "private"
      ],
      "title": "ProjectClass",
      "type": "string"
    },
    "Role": {
      "description": "A named set of access permissions within a tenant.\n\nA role bundles policies that determine what a holder is allowed to do. Roles\nare assigned to users ([`User`][albert.resources.users.User]) and referenced\nby entity ACLs. Roles are typically read from Albert rather than built by\nhand.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the role. Role IDs may contain ``#`` characters. Set once the role is retrieved from Albert.",
          "title": "Albertid"
        },
        "name": {
          "description": "The display name of the role.",
          "title": "Name",
          "type": "string"
        },
        "Policies": {
          "anyOf": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The policies (permission rules) associated with the role.",
          "title": "Policies"
        },
        "tenant": {
          "description": "The ID of the tenant the role belongs to.",
          "title": "Tenant",
          "type": "string"
        },
        "visibility": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the role is visible in the platform's role listings.",
          "title": "Visibility"
        }
      },
      "required": [
        "name",
        "tenant"
      ],
      "title": "Role",
      "type": "object"
    },
    "Sheet": {
      "description": "An interactive grid within a Worksheet where formulations are built.\n\nA Sheet is one grid inside a Worksheet ([`Worksheet`][albert.resources.worksheets.Worksheet]).\nIt is organized into stacked sections, each a [`Design`][albert.resources.sheets.Design]: Product Design\n(where formulations are built), Process Design, Results (Property Tasks and\ntheir data), and Apps (insights and notes). Access those sections through\n[`product_design`][albert.resources.sheets.Sheet.product_design], [`process_design`][albert.resources.sheets.Sheet.process_design], [`result_design`][albert.resources.sheets.Sheet.result_design], and\n[`app_design`][albert.resources.sheets.Sheet.app_design].\n\nA Sheet Column can be a formulation (the most common case for the SDK), a\nlookup column that displays an inventory attribute, or an ingredient name.\nRows typically represent ingredients (inventory items) and their amounts.\nAdding a formulation to a Sheet is what registers a Formula inventory item.\n\nThe Sheet is a live grid element that carries the session; its cells, columns,\nand rows are themselves interactive. Retrieve a Sheet from a Worksheet's\n[`sheets`][albert.resources.worksheets.Worksheet.sheets], then edit it in place\nwith the methods below.\n\n!!! example\n    ```python\n    from albert import Albert\n    client = Albert()\n    worksheet = client.worksheets.get_by_project_id(project_id=\"PROA9999999\")\n    sheet = worksheet.sheets[0]\n    print(sheet.grid)\n    ```\nMethods\n-------\nrename(new_name) -> Sheet\n    Rename the sheet.\nadd_formulation(formulation_name, components, ...) -> Column\n    Build a formulation column from a list of components (registers a Formula).\nadd_components_to_formulation(components, ...) -> Column\n    Add components to an existing formulation column.\nadd_formulation_columns(formulation_names, ...) -> list[Column]\n    Add one or more empty formulation columns.\nadd_inventory_row(inventory_id, ...) -> Row\n    Add an ingredient (inventory) row.\nadd_blank_row(row_name, ...) -> Row\n    Add a blank row.\nadd_lookup_row(name, ...) -> Row\n    Add a lookup row.\nadd_app_row(app_id, name, ...) -> Row\n    Add an application row.\nadd_parameter_group_row(parameter_group_id, ...) -> Row\n    Add a parameter group (PRG) row to Process Design.\nadd_blank_column(name, ...) -> Column\n    Add a blank column.\nadd_lookup_column(name, ...) -> Column\n    Add a lookup column.\nadd_function_column(name, ...) -> Column\n    Add a function column.\nadd_property_column(name, attribute_id, ...) -> Column\n    Add a property/result column.\nget_column(...) -> Column\n    Retrieve a column by column ID, inventory ID, or name.\nupdate_cells(cells) -> tuple[list[Cell], list[Cell]]\n    Write changed cells back to the sheet.\npin_columns(col_ids, side) -> None\n    Pin columns to the left or right edge.\nunpin_columns(col_ids) -> None\n    Unpin columns.\nlock_column(...) -> Column\n    Lock or unlock a column.\nhide_column(col_id) -> None\n    Hide a column.\nshow_column(col_id) -> None\n    Show a hidden column.\nset_columns_width(col_ids, width) -> None\n    Set the display width of columns.\ndelete_column(column_id) -> None\n    Delete a column.\ndelete_row(row_id, design_id) -> None\n    Delete a row.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "albertId": {
          "description": "The Albert ID of the sheet.",
          "title": "Albertid",
          "type": "string"
        },
        "name": {
          "description": "The name of the sheet.",
          "title": "Name",
          "type": "string"
        },
        "Formulas": {
          "description": "References to the formulations present on the sheet.",
          "items": {
            "$ref": "#/$defs/SheetFormulationRef"
          },
          "title": "Formulas",
          "type": "array"
        },
        "hidden": {
          "description": "Whether the sheet is hidden.",
          "title": "Hidden",
          "type": "boolean"
        },
        "isColumnRight": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "When True, copied columns are placed to the right of the source column; when False, to the left.",
          "title": "Iscolumnright"
        },
        "colSizeMode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Column width sizing mode. Allowed values are ``\"minimum\"`` and ``\"fitToColumn\"``. ``None`` resets to the default grid width.",
          "title": "Colsizemode"
        },
        "Designs": {
          "description": "The Designs (sections) of the sheet.",
          "items": {
            "$ref": "#/$defs/Design"
          },
          "title": "Designs",
          "type": "array"
        },
        "projectId": {
          "description": "The ID of the Project the sheet belongs to (format ``PRO...``).",
          "title": "Projectid",
          "type": "string"
        }
      },
      "required": [
        "albertId",
        "name",
        "hidden",
        "Designs",
        "projectId"
      ],
      "title": "Sheet",
      "type": "object"
    },
    "SheetFormulationRef": {
      "description": "A reference to a formulation in a sheet",
      "properties": {
        "id": {
          "description": "The Albert ID of the inventory item that is the formulation",
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The name of the formulation",
          "title": "Name"
        },
        "hidden": {
          "description": "Whether the formulation is hidden",
          "title": "Hidden",
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "hidden"
      ],
      "title": "SheetFormulationRef",
      "type": "object"
    },
    "State": {
      "description": "The lifecycle state of a project.\n\nThe set of allowed states is customizable per tenant via the entity-status\nAPI; these are the platform defaults. Unknown tenant-specific values are\ntolerated as plain strings on [`Project.state`][albert.resources.projects.Project.state].",
      "enum": [
        "Not Started",
        "Active",
        "Closed - Success",
        "Closed - Archived",
        "Just Started",
        "In Progress"
      ],
      "title": "State",
      "type": "string"
    },
    "Status": {
      "description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n    The resource is fully operational and visible in normal operations.\nINACTIVE : str\n    The resource is hidden from normal operations and disabled from use.",
      "enum": [
        "active",
        "inactive"
      ],
      "title": "Status",
      "type": "string"
    },
    "Tag": {
      "description": "A freeform text label used to categorize and connect entities.\n\nTags are shared by name across the platform and can be applied to inventory\nitems, companies, tasks, and other records to group and filter them. Managed\nthrough [`TagCollection`][albert.collections.tags.TagCollection] (``client.tags``);\nthe usual entry point is [`get_or_create`][albert.collections.tags.TagCollection.get_or_create].\n\n!!! example\n    ```python\n    from albert.resources.tags import Tag\n    tag = Tag(tag=\"high-priority\")\n    ```\nMethods\n-------\nfrom_string(tag) -> Tag\n    Build a Tag from its name string.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The name of the tag (its text label).",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the tag (format ``TAG...``). Set when the tag is retrieved from or created in Albert. Methods ------- from_string(tag) -> Tag Build a Tag from its name string.",
          "title": "Albertid"
        }
      },
      "required": [
        "name"
      ],
      "title": "Tag",
      "type": "object"
    },
    "TaskConfig": {
      "description": "Default task settings applied when tasks are created within a project.",
      "properties": {
        "datatemplateId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "ID of the data template tasks default to.",
          "title": "Datatemplateid"
        },
        "workflowId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "ID of the workflow tasks default to.",
          "title": "Workflowid"
        },
        "defaultTaskName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Default name applied to new tasks.",
          "title": "Defaulttaskname"
        },
        "target": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Default target for the configured tasks.",
          "title": "Target"
        },
        "hidden": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Whether this configuration is hidden in the UI.",
          "title": "Hidden"
        }
      },
      "title": "TaskConfig",
      "type": "object"
    },
    "User": {
      "description": "An Albert user account: a person who can log in and act in the platform.\n\nA user has a name and email, an optional home\n[`Location`][albert.resources.locations.Location], and a set of\n[`Role`][albert.resources.roles.Role] objects that govern what they can do.\nThe ``user_class`` sets a broad permission tier\n([`UserClass`][albert.resources.users.UserClass]). Users are grouped into teams\n([`Team`][albert.resources.teams.Team]), and are referenced across the\nplatform, for example as the assignee of a Task or in an entity's ACL.\n\n!!! example\n    ```python\n    from albert.resources.users import User, UserClass\n    user = User(\n        name=\"Ada Lovelace\",\n        email=\"ada@example.com\",\n        user_class=UserClass.STANDARD,\n    )\n    ```",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The display name of the user.",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert User ID (format ``USR...``). Set once the user is registered in or retrieved from Albert.",
          "title": "Albertid"
        },
        "Location": {
          "anyOf": [
            {
              "$ref": "#/$defs/Location"
            },
            {
              "$ref": "#/$defs/EntityLink"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The user's home location.",
          "title": "Location"
        },
        "email": {
          "default": null,
          "description": "The user's email address.",
          "format": "email",
          "title": "Email",
          "type": "string"
        },
        "Roles": {
          "description": "The roles the user holds, which determine their permissions.",
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/Role"
              },
              {
                "$ref": "#/$defs/EntityLink"
              }
            ]
          },
          "maxItems": 1,
          "title": "Roles",
          "type": "array"
        },
        "userClass": {
          "$ref": "#/$defs/UserClass",
          "default": "standard",
          "description": "The ACL class level of the user (broad permission tier)."
        },
        "witnesser": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the user can act as a witness on tasks (only relevant when witnessing is enabled for the tenant).",
          "title": "Witnesser"
        },
        "Metadata": {
          "anyOf": [
            {
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/EntityLinkWithName"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/EntityLinkWithName"
                        },
                        {
                          "$ref": "#/$defs/EntityLink"
                        }
                      ]
                    },
                    "type": "array"
                  }
                ]
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Custom metadata attached to the user.",
          "title": "Metadata"
        }
      },
      "required": [
        "name"
      ],
      "title": "User",
      "type": "object"
    },
    "UserClass": {
      "description": "The ACL class level of a user, setting a broad permission tier.\n\nAttributes\n----------\nGUEST : str\n    Most limited access; typically external or temporary users.\nSTANDARD : str\n    Default access level for regular users.\nTRUSTED : str\n    Elevated access above standard users.\nPRIVILEGED : str\n    High access level below full administrators.\nADMIN : str\n    Full administrative access to the tenant.",
      "enum": [
        "guest",
        "standard",
        "trusted",
        "privileged",
        "admin"
      ],
      "title": "UserClass",
      "type": "string"
    }
  },
  "properties": {
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/Status"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The status of the resource, optional."
    },
    "Created": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the creation of the resource, optional."
    },
    "Updated": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the update of the resource, optional."
    },
    "Tags": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/Tag"
              },
              {
                "$ref": "#/$defs/EntityLink"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A list of Tag objects or strings representing tags.",
      "title": "Tags"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "category": {
      "const": "Batch",
      "default": "Batch",
      "title": "Category",
      "type": "string"
    },
    "AssignedTo": {
      "anyOf": [
        {
          "$ref": "#/$defs/User"
        },
        {
          "$ref": "#/$defs/EntityLink"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Assignedto"
    },
    "Project": {
      "anyOf": [
        {
          "$ref": "#/$defs/Project"
        },
        {
          "$ref": "#/$defs/EntityLink"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Project"
    },
    "Location": {
      "anyOf": [
        {
          "$ref": "#/$defs/Location"
        },
        {
          "$ref": "#/$defs/EntityLink"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Location"
    },
    "batchSizeUnit": {
      "default": null,
      "title": "Batchsizeunit",
      "type": "string"
    },
    "Inventories": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/DataTemplateInventory"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Inventories"
    },
    "priority": {
      "$ref": "#/$defs/Priority"
    },
    "Workflow": {
      "default": null,
      "items": {
        "$ref": "#/$defs/EntityLink"
      },
      "title": "Workflow",
      "type": "array"
    },
    "notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Notes"
    },
    "dueDate": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Duedate"
    }
  },
  "required": [
    "priority"
  ],
  "title": "BatchData",
  "type": "object"
}

Fields:

name

name: str | None = None

category

assigned_to

assigned_to: SerializeAsEntityLink[User] | None = None

project

project: SerializeAsEntityLink[Project] | None = None

location

location: SerializeAsEntityLink[Location] | None = None

batch_size_unit

batch_size_unit: str = None

inventories

inventories: list[DataTemplateInventory] | None = None

priority

priority: Priority

workflow

workflow: list[EntityLink] = None

notes

notes: str | None = None

due_date

due_date: str | None = None

PropertyData

Bases: BaseTaggedResource

Show JSON schema:
{
  "$defs": {
    "ACL": {
      "description": "A single access rule for a user.",
      "properties": {
        "id": {
          "description": "The id of the user for which this ACL applies",
          "title": "Id",
          "type": "string"
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Fine-Grain Control Level"
        }
      },
      "required": [
        "id"
      ],
      "title": "ACL",
      "type": "object"
    },
    "AccessControlLevel": {
      "description": "Access control levels you can grant users.",
      "enum": [
        "ProjectOwner",
        "ProjectEditor",
        "ProjectViewer",
        "ProjectAllTask",
        "ProjectStrictViewer",
        "ProjectPropertyTask",
        "InventoryOwner",
        "InventoryViewer",
        "CustomTemplateOwner",
        "CustomTemplateViewer",
        "CASFullAccess"
      ],
      "title": "AccessControlLevel",
      "type": "string"
    },
    "AuditFields": {
      "description": "The audit fields for a resource",
      "properties": {
        "by": {
          "default": null,
          "title": "By",
          "type": "string"
        },
        "byName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Byname"
        },
        "at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "At"
        }
      },
      "title": "AuditFields",
      "type": "object"
    },
    "Block": {
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "Tags": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Tag"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A list of Tag objects or strings representing tags.",
          "title": "Tags"
        },
        "Workflow": {
          "default": null,
          "items": {
            "$ref": "#/$defs/Workflow"
          },
          "title": "Workflow",
          "type": "array"
        },
        "Datatemplate": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/EntityLink"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Datatemplate"
        }
      },
      "title": "Block",
      "type": "object"
    },
    "CustomTemplateInventoryLot": {
      "description": "A lot reference within a custom template inventory entry.",
      "properties": {
        "id": {
          "description": "The Albert ID of the lot.",
          "title": "Id",
          "type": "string"
        },
        "barcode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The barcode of the lot.",
          "title": "Barcode"
        }
      },
      "required": [
        "id"
      ],
      "title": "CustomTemplateInventoryLot",
      "type": "object"
    },
    "DataTemplateInventory": {
      "description": "An inventory item reference within a custom template, with batch and lot details.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "$ref": "#/$defs/InventoryCategory"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The inventory category of the item."
        },
        "batchSize": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The batch size to use for this inventory item.",
          "title": "Batchsize"
        },
        "sheet": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Sheet"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Sheets associated with this inventory item in the template.",
          "title": "Sheet"
        },
        "Lots": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/CustomTemplateInventoryLot"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Lots associated with this inventory item in the template.",
          "title": "Lots"
        }
      },
      "required": [
        "id"
      ],
      "title": "DataTemplateInventory",
      "type": "object"
    },
    "Design": {
      "description": "One section of a Sheet, backing the grid for a single [`DesignType`][albert.resources.sheets.DesignType].\n\nA Sheet is made up of stacked sections (Product Design, Process Design,\nResults, and Apps) and each section is a Design. Designs are largely an\ninternal detail: most work is done through the parent [`Sheet`][albert.resources.sheets.Sheet], which\nexposes its Designs as [`product_design`][albert.resources.sheets.Sheet.product_design],\n[`result_design`][albert.resources.sheets.Sheet.result_design], [`app_design`][albert.resources.sheets.Sheet.app_design], and\n[`process_design`][albert.resources.sheets.Sheet.process_design]. A Design is a live grid element that carries the\nsession and lazily loads its rows, columns, and grid on first access.\nMethods\n-------\ngroup_rows(name, child_row_ids, ...) -> RowGroup\n    Create a named row group within this design.\nget_groups(refresh=False) -> list[RowGroup]\n    Get all row groups in this design.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "state": {
          "anyOf": [
            {
              "$ref": "#/$defs/DesignState"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The display state of the design. Optional. Default is None."
        },
        "albertId": {
          "description": "The Albert ID of the design.",
          "title": "Albertid",
          "type": "string"
        },
        "designType": {
          "anyOf": [
            {
              "$ref": "#/$defs/DesignType"
            },
            {
              "type": "string"
            }
          ],
          "description": "The section of the Sheet this design backs. See [`DesignType`][albert.resources.sheets.DesignType]. Unknown legacy/tenant values parse as plain strings.",
          "title": "Designtype"
        }
      },
      "required": [
        "albertId",
        "designType"
      ],
      "title": "Design",
      "type": "object"
    },
    "DesignState": {
      "description": "The display state of a Design section within a Sheet.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "collapsed": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Whether the Design section is collapsed in the Sheet view. Default is False.",
          "title": "Collapsed"
        }
      },
      "title": "DesignState",
      "type": "object"
    },
    "DesignType": {
      "description": "The section of a Sheet that a Design represents.\n\nA Sheet is organized into stacked sections, each backed by a Design\n([`Design`][albert.resources.sheets.Design]). The type identifies which section:\n\n- ``PRODUCTS``: Product Design, where formulations are built.\n- ``PROCESS``: Process Design.\n- ``RESULTS``: Results, holding Property Tasks and their data.\n- ``APPS``: Apps, holding insights, reporting, and notes.",
      "enum": [
        "apps",
        "products",
        "results",
        "process",
        "reagents"
      ],
      "title": "DesignType",
      "type": "string"
    },
    "EntityLink": {
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLink",
      "type": "object"
    },
    "EntityLinkWithName": {
      "description": "EntityLink that includes the name field in serialization.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLinkWithName",
      "type": "object"
    },
    "GridDefault": {
      "description": "The default grid view shown for a project.\n\n- ``PD``: the Property Data grid.\n- ``WKS``: the Worksheet grid.",
      "enum": [
        "PD",
        "WKS"
      ],
      "title": "GridDefault",
      "type": "string"
    },
    "InventoryCategory": {
      "description": "The kind of material an [`InventoryItem`][albert.resources.inventory.InventoryItem] represents.\n\nEvery inventory item belongs to exactly one category, which determines how it\nis used across the platform and which fields are relevant to it.\n\nAttributes\n----------\nRAW_MATERIALS : str\n    A purchased substance used as an ingredient (e.g. a solvent or pigment).\n    Typically linked to a manufacturing ``company`` and one or more CAS numbers.\nCONSUMABLES : str\n    Lab supplies consumed during work (e.g. gloves, vials, filters).\nEQUIPMENT : str\n    Instruments and apparatus (e.g. a balance or spectrometer).\nFORMULAS : str\n    A mixture designed in Albert through a Worksheet. Formulas are not created\n    through the inventory collection; they are produced by the Worksheet\n    collection ([`WorksheetCollection`][albert.collections.worksheets.WorksheetCollection]).",
      "enum": [
        "RawMaterials",
        "Consumables",
        "Equipment",
        "Formulas"
      ],
      "title": "InventoryCategory",
      "type": "string"
    },
    "JobStatus": {
      "description": "The status of a SAM (self-automating method) configuration job.\n\nAttributes\n----------\nACTIVE : str\n    The job is active.\nINACTIVE : str\n    The job is inactive.\nQUEUED : str\n    The job is queued to run.",
      "enum": [
        "active",
        "inactive",
        "queued"
      ],
      "title": "JobStatus",
      "type": "string"
    },
    "Location": {
      "description": "A physical lab or site location in Albert.\n\nLocations are referenced by Tasks and Inventory Items to record where an\nactivity is performed or where a material lives, and each Location can hold\none or more Storage Locations\n([`StorageLocation`][albert.resources.storage_locations.StorageLocation]). Managed\nthrough [`LocationCollection`][albert.collections.locations.LocationCollection].\n\n!!! example\n    ```python\n    from albert.resources.locations import Location\n    location = Location(\n        name=\"Boston Lab\",\n        latitude=42.3601,\n        longitude=-71.0589,\n        address=\"1 Main St\",\n        country=\"US\",\n    )\n    ```",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The human-readable name of the location.",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the location. Assigned by Albert and populated once the location has been created or retrieved.",
          "title": "Albertid"
        },
        "latitude": {
          "description": "The latitude of the location, in decimal degrees.",
          "title": "Latitude",
          "type": "number"
        },
        "longitude": {
          "description": "The longitude of the location, in decimal degrees.",
          "title": "Longitude",
          "type": "number"
        },
        "address": {
          "description": "The street address of the location.",
          "title": "Address",
          "type": "string"
        },
        "country": {
          "anyOf": [
            {
              "maxLength": 2,
              "minLength": 2,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The two-letter country code of the location (for example, ``\"US\"``).",
          "title": "Country"
        }
      },
      "required": [
        "name",
        "latitude",
        "longitude",
        "address"
      ],
      "title": "Location",
      "type": "object"
    },
    "Priority": {
      "description": "The priority assigned to a task created from a template.\n\nAttributes\n----------\nLOW : str\n    Low priority.\nMEDIUM : str\n    Medium priority.\nHIGH : str\n    High priority.",
      "enum": [
        "Low",
        "Medium",
        "High"
      ],
      "title": "Priority",
      "type": "string"
    },
    "Project": {
      "description": "A project in Albert: the top-level container for a piece of R&D work.\n\nA project groups the formulations designed for the work, its Worksheet (1:1\nwith the project), the Tasks run against it, and the inventory it references.\nCreate and manage projects through the\n[`ProjectCollection`][albert.collections.projects.ProjectCollection] (``client.projects``).\n\nOnly ``description`` is required to build one; it doubles as the project's\ndisplay name. The ``id`` and ``state`` are assigned by Albert and are read\nonly from the client's perspective.\n\n!!! example\n    ```python\n    from albert import Albert\n    from albert.resources.projects import Project, ProjectClass\n    client = Albert()\n    project = client.projects.create(\n        project=Project(\n            description=\"Weatherproof Coatings 2026\",\n            project_class=ProjectClass.SHARED,\n        )\n    )\n    project.id\n    # 'PRO123'\n    ```",
      "properties": {
        "status": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Read-only status string returned by Albert.",
          "title": "Status"
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "description": {
          "description": "Human-readable project name/description (1-2000 characters). Also serves as the project's display name.",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Description",
          "type": "string"
        },
        "Locations": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Location"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "maxItems": 20,
              "minItems": 1,
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The locations the project is associated with. Optional.",
          "title": "Locations"
        },
        "class": {
          "anyOf": [
            {
              "$ref": "#/$defs/ProjectClass"
            },
            {
              "type": "null"
            }
          ],
          "default": "private",
          "description": "Access-control class (private, shared, or confidential). Defaults to private."
        },
        "prefix": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional prefix used when naming entities within the project.",
          "title": "Prefix"
        },
        "appEngg": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Inventory Ids to be added as application engineering",
          "title": "Appengg"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert Project ID (format ``PRO...``). Assigned by Albert and present once the project has been created or retrieved.",
          "title": "Albertid"
        },
        "ACL": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ACL"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "Access-control entries controlling who can access the project. Optional.",
          "title": "Acl"
        },
        "old_api_params": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Read-only. Do not use.",
          "title": "Old Api Params"
        },
        "task_config": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/TaskConfig"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "Default task settings applied to tasks created within the project.",
          "title": "Task Config"
        },
        "grid": {
          "anyOf": [
            {
              "$ref": "#/$defs/GridDefault"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The default grid view (Property Data or Worksheet) shown for the project."
        },
        "Metadata": {
          "anyOf": [
            {
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/EntityLinkWithName"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/EntityLinkWithName"
                        },
                        {
                          "$ref": "#/$defs/EntityLink"
                        }
                      ]
                    },
                    "type": "array"
                  }
                ]
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Custom field values. Allowed keys and values are defined via the Custom Fields API. Optional.",
          "title": "Metadata"
        },
        "state": {
          "anyOf": [
            {
              "$ref": "#/$defs/State"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The project's lifecycle state. Read only on create; can be changed via [`update`][albert.collections.projects.ProjectCollection.update]. Tenant-customized states outside [`State`][albert.resources.projects.State] parse as plain strings.",
          "title": "State"
        }
      },
      "required": [
        "description"
      ],
      "title": "Project",
      "type": "object"
    },
    "ProjectClass": {
      "description": "The access-control class of a project, governing who can see it.\n\n- ``PRIVATE``: visible only to the project's ACL members (the default).\n- ``SHARED``: visible more broadly across the organization.\n- ``CONFIDENTIAL``: restricted, most tightly controlled access.",
      "enum": [
        "shared",
        "confidential",
        "private"
      ],
      "title": "ProjectClass",
      "type": "string"
    },
    "Role": {
      "description": "A named set of access permissions within a tenant.\n\nA role bundles policies that determine what a holder is allowed to do. Roles\nare assigned to users ([`User`][albert.resources.users.User]) and referenced\nby entity ACLs. Roles are typically read from Albert rather than built by\nhand.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the role. Role IDs may contain ``#`` characters. Set once the role is retrieved from Albert.",
          "title": "Albertid"
        },
        "name": {
          "description": "The display name of the role.",
          "title": "Name",
          "type": "string"
        },
        "Policies": {
          "anyOf": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The policies (permission rules) associated with the role.",
          "title": "Policies"
        },
        "tenant": {
          "description": "The ID of the tenant the role belongs to.",
          "title": "Tenant",
          "type": "string"
        },
        "visibility": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the role is visible in the platform's role listings.",
          "title": "Visibility"
        }
      },
      "required": [
        "name",
        "tenant"
      ],
      "title": "Role",
      "type": "object"
    },
    "SamConfig": {
      "description": "A SAM (Sample Analysis Module) machine configuration.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/JobStatus"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the SAM job."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "configurationName": {
          "description": "The name of the configuration.",
          "title": "Configurationname",
          "type": "string"
        },
        "configurationId": {
          "description": "The identifier of the configuration.",
          "title": "Configurationid",
          "type": "string"
        },
        "machineId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The identifier of the machine.",
          "title": "Machineid"
        },
        "input": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/SamInput"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The input parameters for this configuration.",
          "title": "Input"
        }
      },
      "required": [
        "configurationName",
        "configurationId"
      ],
      "title": "SamConfig",
      "type": "object"
    },
    "SamInput": {
      "description": "An input parameter for a SAM (Sample Analysis Module) configuration.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "Value": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The value of the input parameter.",
          "title": "Value"
        },
        "Unit": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The unit of the input parameter.",
          "title": "Unit"
        },
        "Name": {
          "description": "The name of the input parameter.",
          "title": "Name",
          "type": "string"
        }
      },
      "required": [
        "Name"
      ],
      "title": "SamInput",
      "type": "object"
    },
    "Sheet": {
      "description": "An interactive grid within a Worksheet where formulations are built.\n\nA Sheet is one grid inside a Worksheet ([`Worksheet`][albert.resources.worksheets.Worksheet]).\nIt is organized into stacked sections, each a [`Design`][albert.resources.sheets.Design]: Product Design\n(where formulations are built), Process Design, Results (Property Tasks and\ntheir data), and Apps (insights and notes). Access those sections through\n[`product_design`][albert.resources.sheets.Sheet.product_design], [`process_design`][albert.resources.sheets.Sheet.process_design], [`result_design`][albert.resources.sheets.Sheet.result_design], and\n[`app_design`][albert.resources.sheets.Sheet.app_design].\n\nA Sheet Column can be a formulation (the most common case for the SDK), a\nlookup column that displays an inventory attribute, or an ingredient name.\nRows typically represent ingredients (inventory items) and their amounts.\nAdding a formulation to a Sheet is what registers a Formula inventory item.\n\nThe Sheet is a live grid element that carries the session; its cells, columns,\nand rows are themselves interactive. Retrieve a Sheet from a Worksheet's\n[`sheets`][albert.resources.worksheets.Worksheet.sheets], then edit it in place\nwith the methods below.\n\n!!! example\n    ```python\n    from albert import Albert\n    client = Albert()\n    worksheet = client.worksheets.get_by_project_id(project_id=\"PROA9999999\")\n    sheet = worksheet.sheets[0]\n    print(sheet.grid)\n    ```\nMethods\n-------\nrename(new_name) -> Sheet\n    Rename the sheet.\nadd_formulation(formulation_name, components, ...) -> Column\n    Build a formulation column from a list of components (registers a Formula).\nadd_components_to_formulation(components, ...) -> Column\n    Add components to an existing formulation column.\nadd_formulation_columns(formulation_names, ...) -> list[Column]\n    Add one or more empty formulation columns.\nadd_inventory_row(inventory_id, ...) -> Row\n    Add an ingredient (inventory) row.\nadd_blank_row(row_name, ...) -> Row\n    Add a blank row.\nadd_lookup_row(name, ...) -> Row\n    Add a lookup row.\nadd_app_row(app_id, name, ...) -> Row\n    Add an application row.\nadd_parameter_group_row(parameter_group_id, ...) -> Row\n    Add a parameter group (PRG) row to Process Design.\nadd_blank_column(name, ...) -> Column\n    Add a blank column.\nadd_lookup_column(name, ...) -> Column\n    Add a lookup column.\nadd_function_column(name, ...) -> Column\n    Add a function column.\nadd_property_column(name, attribute_id, ...) -> Column\n    Add a property/result column.\nget_column(...) -> Column\n    Retrieve a column by column ID, inventory ID, or name.\nupdate_cells(cells) -> tuple[list[Cell], list[Cell]]\n    Write changed cells back to the sheet.\npin_columns(col_ids, side) -> None\n    Pin columns to the left or right edge.\nunpin_columns(col_ids) -> None\n    Unpin columns.\nlock_column(...) -> Column\n    Lock or unlock a column.\nhide_column(col_id) -> None\n    Hide a column.\nshow_column(col_id) -> None\n    Show a hidden column.\nset_columns_width(col_ids, width) -> None\n    Set the display width of columns.\ndelete_column(column_id) -> None\n    Delete a column.\ndelete_row(row_id, design_id) -> None\n    Delete a row.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "albertId": {
          "description": "The Albert ID of the sheet.",
          "title": "Albertid",
          "type": "string"
        },
        "name": {
          "description": "The name of the sheet.",
          "title": "Name",
          "type": "string"
        },
        "Formulas": {
          "description": "References to the formulations present on the sheet.",
          "items": {
            "$ref": "#/$defs/SheetFormulationRef"
          },
          "title": "Formulas",
          "type": "array"
        },
        "hidden": {
          "description": "Whether the sheet is hidden.",
          "title": "Hidden",
          "type": "boolean"
        },
        "isColumnRight": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "When True, copied columns are placed to the right of the source column; when False, to the left.",
          "title": "Iscolumnright"
        },
        "colSizeMode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Column width sizing mode. Allowed values are ``\"minimum\"`` and ``\"fitToColumn\"``. ``None`` resets to the default grid width.",
          "title": "Colsizemode"
        },
        "Designs": {
          "description": "The Designs (sections) of the sheet.",
          "items": {
            "$ref": "#/$defs/Design"
          },
          "title": "Designs",
          "type": "array"
        },
        "projectId": {
          "description": "The ID of the Project the sheet belongs to (format ``PRO...``).",
          "title": "Projectid",
          "type": "string"
        }
      },
      "required": [
        "albertId",
        "name",
        "hidden",
        "Designs",
        "projectId"
      ],
      "title": "Sheet",
      "type": "object"
    },
    "SheetFormulationRef": {
      "description": "A reference to a formulation in a sheet",
      "properties": {
        "id": {
          "description": "The Albert ID of the inventory item that is the formulation",
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The name of the formulation",
          "title": "Name"
        },
        "hidden": {
          "description": "Whether the formulation is hidden",
          "title": "Hidden",
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "hidden"
      ],
      "title": "SheetFormulationRef",
      "type": "object"
    },
    "State": {
      "description": "The lifecycle state of a project.\n\nThe set of allowed states is customizable per tenant via the entity-status\nAPI; these are the platform defaults. Unknown tenant-specific values are\ntolerated as plain strings on [`Project.state`][albert.resources.projects.Project.state].",
      "enum": [
        "Not Started",
        "Active",
        "Closed - Success",
        "Closed - Archived",
        "Just Started",
        "In Progress"
      ],
      "title": "State",
      "type": "string"
    },
    "Status": {
      "description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n    The resource is fully operational and visible in normal operations.\nINACTIVE : str\n    The resource is hidden from normal operations and disabled from use.",
      "enum": [
        "active",
        "inactive"
      ],
      "title": "Status",
      "type": "string"
    },
    "Tag": {
      "description": "A freeform text label used to categorize and connect entities.\n\nTags are shared by name across the platform and can be applied to inventory\nitems, companies, tasks, and other records to group and filter them. Managed\nthrough [`TagCollection`][albert.collections.tags.TagCollection] (``client.tags``);\nthe usual entry point is [`get_or_create`][albert.collections.tags.TagCollection.get_or_create].\n\n!!! example\n    ```python\n    from albert.resources.tags import Tag\n    tag = Tag(tag=\"high-priority\")\n    ```\nMethods\n-------\nfrom_string(tag) -> Tag\n    Build a Tag from its name string.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The name of the tag (its text label).",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the tag (format ``TAG...``). Set when the tag is retrieved from or created in Albert. Methods ------- from_string(tag) -> Tag Build a Tag from its name string.",
          "title": "Albertid"
        }
      },
      "required": [
        "name"
      ],
      "title": "Tag",
      "type": "object"
    },
    "TaskConfig": {
      "description": "Default task settings applied when tasks are created within a project.",
      "properties": {
        "datatemplateId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "ID of the data template tasks default to.",
          "title": "Datatemplateid"
        },
        "workflowId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "ID of the workflow tasks default to.",
          "title": "Workflowid"
        },
        "defaultTaskName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Default name applied to new tasks.",
          "title": "Defaulttaskname"
        },
        "target": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Default target for the configured tasks.",
          "title": "Target"
        },
        "hidden": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Whether this configuration is hidden in the UI.",
          "title": "Hidden"
        }
      },
      "title": "TaskConfig",
      "type": "object"
    },
    "User": {
      "description": "An Albert user account: a person who can log in and act in the platform.\n\nA user has a name and email, an optional home\n[`Location`][albert.resources.locations.Location], and a set of\n[`Role`][albert.resources.roles.Role] objects that govern what they can do.\nThe ``user_class`` sets a broad permission tier\n([`UserClass`][albert.resources.users.UserClass]). Users are grouped into teams\n([`Team`][albert.resources.teams.Team]), and are referenced across the\nplatform, for example as the assignee of a Task or in an entity's ACL.\n\n!!! example\n    ```python\n    from albert.resources.users import User, UserClass\n    user = User(\n        name=\"Ada Lovelace\",\n        email=\"ada@example.com\",\n        user_class=UserClass.STANDARD,\n    )\n    ```",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The display name of the user.",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert User ID (format ``USR...``). Set once the user is registered in or retrieved from Albert.",
          "title": "Albertid"
        },
        "Location": {
          "anyOf": [
            {
              "$ref": "#/$defs/Location"
            },
            {
              "$ref": "#/$defs/EntityLink"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The user's home location.",
          "title": "Location"
        },
        "email": {
          "default": null,
          "description": "The user's email address.",
          "format": "email",
          "title": "Email",
          "type": "string"
        },
        "Roles": {
          "description": "The roles the user holds, which determine their permissions.",
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/Role"
              },
              {
                "$ref": "#/$defs/EntityLink"
              }
            ]
          },
          "maxItems": 1,
          "title": "Roles",
          "type": "array"
        },
        "userClass": {
          "$ref": "#/$defs/UserClass",
          "default": "standard",
          "description": "The ACL class level of the user (broad permission tier)."
        },
        "witnesser": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the user can act as a witness on tasks (only relevant when witnessing is enabled for the tenant).",
          "title": "Witnesser"
        },
        "Metadata": {
          "anyOf": [
            {
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/EntityLinkWithName"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/EntityLinkWithName"
                        },
                        {
                          "$ref": "#/$defs/EntityLink"
                        }
                      ]
                    },
                    "type": "array"
                  }
                ]
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Custom metadata attached to the user.",
          "title": "Metadata"
        }
      },
      "required": [
        "name"
      ],
      "title": "User",
      "type": "object"
    },
    "UserClass": {
      "description": "The ACL class level of a user, setting a broad permission tier.\n\nAttributes\n----------\nGUEST : str\n    Most limited access; typically external or temporary users.\nSTANDARD : str\n    Default access level for regular users.\nTRUSTED : str\n    Elevated access above standard users.\nPRIVILEGED : str\n    High access level below full administrators.\nADMIN : str\n    Full administrative access to the tenant.",
      "enum": [
        "guest",
        "standard",
        "trusted",
        "privileged",
        "admin"
      ],
      "title": "UserClass",
      "type": "string"
    },
    "Workflow": {
      "description": "A workflow reference within a custom template.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "id": {
          "description": "The Albert ID of the workflow.",
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The name of the workflow.",
          "title": "Name"
        },
        "SamConfig": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/SamConfig"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "SAM configurations associated with this workflow, if any.",
          "title": "Samconfig"
        }
      },
      "required": [
        "id"
      ],
      "title": "Workflow",
      "type": "object"
    }
  },
  "properties": {
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/Status"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The status of the resource, optional."
    },
    "Created": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the creation of the resource, optional."
    },
    "Updated": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the update of the resource, optional."
    },
    "Tags": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/Tag"
              },
              {
                "$ref": "#/$defs/EntityLink"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A list of Tag objects or strings representing tags.",
      "title": "Tags"
    },
    "category": {
      "const": "Property",
      "default": "Property",
      "title": "Category",
      "type": "string"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "Blocks": {
      "items": {
        "$ref": "#/$defs/Block"
      },
      "title": "Blocks",
      "type": "array"
    },
    "priority": {
      "$ref": "#/$defs/Priority"
    },
    "Location": {
      "anyOf": [
        {
          "$ref": "#/$defs/Location"
        },
        {
          "$ref": "#/$defs/EntityLink"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Location"
    },
    "AssignedTo": {
      "anyOf": [
        {
          "$ref": "#/$defs/User"
        },
        {
          "$ref": "#/$defs/EntityLink"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Assignedto"
    },
    "Project": {
      "anyOf": [
        {
          "$ref": "#/$defs/Project"
        },
        {
          "$ref": "#/$defs/EntityLink"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Project"
    },
    "Inventories": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/DataTemplateInventory"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Inventories"
    },
    "dueDate": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Duedate"
    },
    "notes": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Notes"
    }
  },
  "required": [
    "priority"
  ],
  "title": "PropertyData",
  "type": "object"
}

Fields:

category

name

name: str | None = None

blocks

blocks: list[Block]

priority

priority: Priority

location

location: SerializeAsEntityLink[Location] | None = None

assigned_to

assigned_to: SerializeAsEntityLink[User] | None = None

project

project: SerializeAsEntityLink[Project] | None = None

inventories

inventories: list[DataTemplateInventory] | None = None

due_date

due_date: str | None = None

notes

notes: str | None = None

SheetData

Bases: BaseTaggedResource

Show JSON schema:
{
  "$defs": {
    "AuditFields": {
      "description": "The audit fields for a resource",
      "properties": {
        "by": {
          "default": null,
          "title": "By",
          "type": "string"
        },
        "byName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Byname"
        },
        "at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "At"
        }
      },
      "title": "AuditFields",
      "type": "object"
    },
    "DesignLink": {
      "description": "A link to a worksheet design with its type.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        },
        "type": {
          "$ref": "#/$defs/DesignType",
          "description": "The design type (apps, products, results, or process)."
        }
      },
      "required": [
        "id",
        "type"
      ],
      "title": "DesignLink",
      "type": "object"
    },
    "DesignType": {
      "description": "The section of a Sheet that a Design represents.\n\nA Sheet is organized into stacked sections, each backed by a Design\n([`Design`][albert.resources.sheets.Design]). The type identifies which section:\n\n- ``PRODUCTS``: Product Design, where formulations are built.\n- ``PROCESS``: Process Design.\n- ``RESULTS``: Results, holding Property Tasks and their data.\n- ``APPS``: Apps, holding insights, reporting, and notes.",
      "enum": [
        "apps",
        "products",
        "results",
        "process",
        "reagents"
      ],
      "title": "DesignType",
      "type": "string"
    },
    "EntityLink": {
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLink",
      "type": "object"
    },
    "Status": {
      "description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n    The resource is fully operational and visible in normal operations.\nINACTIVE : str\n    The resource is hidden from normal operations and disabled from use.",
      "enum": [
        "active",
        "inactive"
      ],
      "title": "Status",
      "type": "string"
    },
    "Tag": {
      "description": "A freeform text label used to categorize and connect entities.\n\nTags are shared by name across the platform and can be applied to inventory\nitems, companies, tasks, and other records to group and filter them. Managed\nthrough [`TagCollection`][albert.collections.tags.TagCollection] (``client.tags``);\nthe usual entry point is [`get_or_create`][albert.collections.tags.TagCollection.get_or_create].\n\n!!! example\n    ```python\n    from albert.resources.tags import Tag\n    tag = Tag(tag=\"high-priority\")\n    ```\nMethods\n-------\nfrom_string(tag) -> Tag\n    Build a Tag from its name string.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The name of the tag (its text label).",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the tag (format ``TAG...``). Set when the tag is retrieved from or created in Albert. Methods ------- from_string(tag) -> Tag Build a Tag from its name string.",
          "title": "Albertid"
        }
      },
      "required": [
        "name"
      ],
      "title": "Tag",
      "type": "object"
    }
  },
  "properties": {
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/Status"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The status of the resource, optional."
    },
    "Created": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the creation of the resource, optional."
    },
    "Updated": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the update of the resource, optional."
    },
    "Tags": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/Tag"
              },
              {
                "$ref": "#/$defs/EntityLink"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A list of Tag objects or strings representing tags.",
      "title": "Tags"
    },
    "category": {
      "const": "Sheet",
      "default": "Sheet",
      "title": "Category",
      "type": "string"
    },
    "Designs": {
      "default": null,
      "items": {
        "$ref": "#/$defs/DesignLink"
      },
      "title": "Designs",
      "type": "array"
    },
    "FormulaInfo": {
      "items": {},
      "title": "Formulainfo",
      "type": "array"
    },
    "TaskRows": {
      "items": {
        "$ref": "#/$defs/EntityLink"
      },
      "title": "Taskrows",
      "type": "array"
    }
  },
  "title": "SheetData",
  "type": "object"
}

Fields:

category

designs

designs: list[DesignLink] = None

formula_info

formula_info: list

task_rows

task_rows: list[EntityLink]

NotebookData

Bases: BaseTaggedResource

Show JSON schema:
{
  "$defs": {
    "AuditFields": {
      "description": "The audit fields for a resource",
      "properties": {
        "by": {
          "default": null,
          "title": "By",
          "type": "string"
        },
        "byName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Byname"
        },
        "at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "At"
        }
      },
      "title": "AuditFields",
      "type": "object"
    },
    "EntityLink": {
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLink",
      "type": "object"
    },
    "Status": {
      "description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n    The resource is fully operational and visible in normal operations.\nINACTIVE : str\n    The resource is hidden from normal operations and disabled from use.",
      "enum": [
        "active",
        "inactive"
      ],
      "title": "Status",
      "type": "string"
    },
    "Tag": {
      "description": "A freeform text label used to categorize and connect entities.\n\nTags are shared by name across the platform and can be applied to inventory\nitems, companies, tasks, and other records to group and filter them. Managed\nthrough [`TagCollection`][albert.collections.tags.TagCollection] (``client.tags``);\nthe usual entry point is [`get_or_create`][albert.collections.tags.TagCollection.get_or_create].\n\n!!! example\n    ```python\n    from albert.resources.tags import Tag\n    tag = Tag(tag=\"high-priority\")\n    ```\nMethods\n-------\nfrom_string(tag) -> Tag\n    Build a Tag from its name string.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The name of the tag (its text label).",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the tag (format ``TAG...``). Set when the tag is retrieved from or created in Albert. Methods ------- from_string(tag) -> Tag Build a Tag from its name string.",
          "title": "Albertid"
        }
      },
      "required": [
        "name"
      ],
      "title": "Tag",
      "type": "object"
    }
  },
  "properties": {
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/Status"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The status of the resource, optional."
    },
    "Created": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the creation of the resource, optional."
    },
    "Updated": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the update of the resource, optional."
    },
    "Tags": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/Tag"
              },
              {
                "$ref": "#/$defs/EntityLink"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A list of Tag objects or strings representing tags.",
      "title": "Tags"
    },
    "albertId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Albertid"
    },
    "category": {
      "const": "Notebook",
      "default": "Notebook",
      "title": "Category",
      "type": "string"
    }
  },
  "title": "NotebookData",
  "type": "object"
}

Fields:

id

id: str | None = None

category

ACLType

Bases: str, Enum

The kind of access-control entry on a custom template.

Attributes:

Name Type Description
TEAM str

A team-level access entry.

MEMBER str

A member with edit access.

OWNER str

An owner with full control.

VIEWER str

A viewer with read-only access.

TEAM

TEAM = 'team'

MEMBER

MEMBER = 'member'

OWNER

OWNER = 'owner'

VIEWER

VIEWER = 'viewer'

TeamACL

Bases: ACL

Show JSON schema:
{
  "$defs": {
    "AccessControlLevel": {
      "description": "Access control levels you can grant users.",
      "enum": [
        "ProjectOwner",
        "ProjectEditor",
        "ProjectViewer",
        "ProjectAllTask",
        "ProjectStrictViewer",
        "ProjectPropertyTask",
        "InventoryOwner",
        "InventoryViewer",
        "CustomTemplateOwner",
        "CustomTemplateViewer",
        "CASFullAccess"
      ],
      "title": "AccessControlLevel",
      "type": "string"
    }
  },
  "properties": {
    "id": {
      "description": "The id of the user for which this ACL applies",
      "title": "Id",
      "type": "string"
    },
    "fgc": {
      "anyOf": [
        {
          "$ref": "#/$defs/AccessControlLevel"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The Fine-Grain Control Level"
    },
    "type": {
      "default": "team",
      "enum": [
        "team",
        "CustomTemplateTeam"
      ],
      "title": "Type",
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "title": "TeamACL",
  "type": "object"
}

Fields:

type

type: Literal[TEAM, 'CustomTemplateTeam'] = ACLType.TEAM

OwnerACL

Bases: ACL

Show JSON schema:
{
  "$defs": {
    "AccessControlLevel": {
      "description": "Access control levels you can grant users.",
      "enum": [
        "ProjectOwner",
        "ProjectEditor",
        "ProjectViewer",
        "ProjectAllTask",
        "ProjectStrictViewer",
        "ProjectPropertyTask",
        "InventoryOwner",
        "InventoryViewer",
        "CustomTemplateOwner",
        "CustomTemplateViewer",
        "CASFullAccess"
      ],
      "title": "AccessControlLevel",
      "type": "string"
    }
  },
  "properties": {
    "id": {
      "description": "The id of the user for which this ACL applies",
      "title": "Id",
      "type": "string"
    },
    "fgc": {
      "anyOf": [
        {
          "$ref": "#/$defs/AccessControlLevel"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The Fine-Grain Control Level"
    },
    "type": {
      "default": "owner",
      "enum": [
        "owner",
        "CustomTemplateOwner"
      ],
      "title": "Type",
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "title": "OwnerACL",
  "type": "object"
}

Fields:

type

type: Literal[OWNER, 'CustomTemplateOwner'] = ACLType.OWNER

MemberACL

Bases: ACL

Show JSON schema:
{
  "$defs": {
    "AccessControlLevel": {
      "description": "Access control levels you can grant users.",
      "enum": [
        "ProjectOwner",
        "ProjectEditor",
        "ProjectViewer",
        "ProjectAllTask",
        "ProjectStrictViewer",
        "ProjectPropertyTask",
        "InventoryOwner",
        "InventoryViewer",
        "CustomTemplateOwner",
        "CustomTemplateViewer",
        "CASFullAccess"
      ],
      "title": "AccessControlLevel",
      "type": "string"
    }
  },
  "properties": {
    "id": {
      "description": "The id of the user for which this ACL applies",
      "title": "Id",
      "type": "string"
    },
    "fgc": {
      "anyOf": [
        {
          "$ref": "#/$defs/AccessControlLevel"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The Fine-Grain Control Level"
    },
    "type": {
      "default": "member",
      "enum": [
        "member",
        "CustomTemplateMember"
      ],
      "title": "Type",
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "title": "MemberACL",
  "type": "object"
}

Fields:

type

type: Literal[MEMBER, "CustomTemplateMember"] = (
    ACLType.MEMBER
)

ViewerACL

Bases: ACL

Show JSON schema:
{
  "$defs": {
    "AccessControlLevel": {
      "description": "Access control levels you can grant users.",
      "enum": [
        "ProjectOwner",
        "ProjectEditor",
        "ProjectViewer",
        "ProjectAllTask",
        "ProjectStrictViewer",
        "ProjectPropertyTask",
        "InventoryOwner",
        "InventoryViewer",
        "CustomTemplateOwner",
        "CustomTemplateViewer",
        "CASFullAccess"
      ],
      "title": "AccessControlLevel",
      "type": "string"
    }
  },
  "properties": {
    "id": {
      "description": "The id of the user for which this ACL applies",
      "title": "Id",
      "type": "string"
    },
    "fgc": {
      "anyOf": [
        {
          "$ref": "#/$defs/AccessControlLevel"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The Fine-Grain Control Level"
    },
    "type": {
      "default": "viewer",
      "enum": [
        "viewer",
        "CustomTemplateViewer"
      ],
      "title": "Type",
      "type": "string"
    }
  },
  "required": [
    "id"
  ],
  "title": "ViewerACL",
  "type": "object"
}

Fields:

type

type: Literal[VIEWER, "CustomTemplateViewer"] = (
    ACLType.VIEWER
)

TemplateACL

Bases: BaseResource

Access control settings for a custom template.

Show JSON schema:
{
  "$defs": {
    "AccessControlLevel": {
      "description": "Access control levels you can grant users.",
      "enum": [
        "ProjectOwner",
        "ProjectEditor",
        "ProjectViewer",
        "ProjectAllTask",
        "ProjectStrictViewer",
        "ProjectPropertyTask",
        "InventoryOwner",
        "InventoryViewer",
        "CustomTemplateOwner",
        "CustomTemplateViewer",
        "CASFullAccess"
      ],
      "title": "AccessControlLevel",
      "type": "string"
    },
    "AuditFields": {
      "description": "The audit fields for a resource",
      "properties": {
        "by": {
          "default": null,
          "title": "By",
          "type": "string"
        },
        "byName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Byname"
        },
        "at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "At"
        }
      },
      "title": "AuditFields",
      "type": "object"
    },
    "MemberACL": {
      "properties": {
        "id": {
          "description": "The id of the user for which this ACL applies",
          "title": "Id",
          "type": "string"
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Fine-Grain Control Level"
        },
        "type": {
          "default": "member",
          "enum": [
            "member",
            "CustomTemplateMember"
          ],
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "title": "MemberACL",
      "type": "object"
    },
    "OwnerACL": {
      "properties": {
        "id": {
          "description": "The id of the user for which this ACL applies",
          "title": "Id",
          "type": "string"
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Fine-Grain Control Level"
        },
        "type": {
          "default": "owner",
          "enum": [
            "owner",
            "CustomTemplateOwner"
          ],
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "title": "OwnerACL",
      "type": "object"
    },
    "Status": {
      "description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n    The resource is fully operational and visible in normal operations.\nINACTIVE : str\n    The resource is hidden from normal operations and disabled from use.",
      "enum": [
        "active",
        "inactive"
      ],
      "title": "Status",
      "type": "string"
    },
    "TeamACL": {
      "properties": {
        "id": {
          "description": "The id of the user for which this ACL applies",
          "title": "Id",
          "type": "string"
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Fine-Grain Control Level"
        },
        "type": {
          "default": "team",
          "enum": [
            "team",
            "CustomTemplateTeam"
          ],
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "title": "TeamACL",
      "type": "object"
    },
    "ViewerACL": {
      "properties": {
        "id": {
          "description": "The id of the user for which this ACL applies",
          "title": "Id",
          "type": "string"
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Fine-Grain Control Level"
        },
        "type": {
          "default": "viewer",
          "enum": [
            "viewer",
            "CustomTemplateViewer"
          ],
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "title": "ViewerACL",
      "type": "object"
    }
  },
  "description": "Access control settings for a custom template.",
  "properties": {
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/Status"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The status of the resource, optional."
    },
    "Created": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the creation of the resource, optional."
    },
    "Updated": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the update of the resource, optional."
    },
    "fgclist": {
      "default": null,
      "description": "The list of access control entries (team, owner, member, viewer).",
      "items": {
        "discriminator": {
          "mapping": {
            "CustomTemplateMember": "#/$defs/MemberACL",
            "CustomTemplateOwner": "#/$defs/OwnerACL",
            "CustomTemplateTeam": "#/$defs/TeamACL",
            "CustomTemplateViewer": "#/$defs/ViewerACL",
            "member": "#/$defs/MemberACL",
            "owner": "#/$defs/OwnerACL",
            "team": "#/$defs/TeamACL",
            "viewer": "#/$defs/ViewerACL"
          },
          "propertyName": "type"
        },
        "oneOf": [
          {
            "$ref": "#/$defs/TeamACL"
          },
          {
            "$ref": "#/$defs/OwnerACL"
          },
          {
            "$ref": "#/$defs/MemberACL"
          },
          {
            "$ref": "#/$defs/ViewerACL"
          }
        ]
      },
      "title": "Fgclist",
      "type": "array"
    },
    "class": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The default access class for the template.",
      "title": "Class"
    }
  },
  "title": "TemplateACL",
  "type": "object"
}

Fields:

fgclist

fgclist: list[ACLEntry] = None

The list of access control entries (team, owner, member, viewer).

acl_class

acl_class: str | None = None

The default access class for the template.

CustomTemplate

Bases: BaseTaggedResource, HydrationMixin['CustomTemplate']

A reusable custom template in Albert.

A custom template captures a standard entity setup so it can be applied repeatedly. Its category selects what kind of entity it configures (see TemplateCategory), and its data holds the category- specific defaults (project, location, assignee, inventories, workflow, priority, and so on). Manage templates through CustomTemplatesCollection.

Example

from albert.resources.custom_templates import CustomTemplate, TemplateCategory
template = CustomTemplate(
    name="Standard Property Task",
    category=TemplateCategory.PROPERTY,
)
Show JSON schema:
{
  "$defs": {
    "ACL": {
      "description": "A single access rule for a user.",
      "properties": {
        "id": {
          "description": "The id of the user for which this ACL applies",
          "title": "Id",
          "type": "string"
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Fine-Grain Control Level"
        }
      },
      "required": [
        "id"
      ],
      "title": "ACL",
      "type": "object"
    },
    "AccessControlLevel": {
      "description": "Access control levels you can grant users.",
      "enum": [
        "ProjectOwner",
        "ProjectEditor",
        "ProjectViewer",
        "ProjectAllTask",
        "ProjectStrictViewer",
        "ProjectPropertyTask",
        "InventoryOwner",
        "InventoryViewer",
        "CustomTemplateOwner",
        "CustomTemplateViewer",
        "CASFullAccess"
      ],
      "title": "AccessControlLevel",
      "type": "string"
    },
    "AuditFields": {
      "description": "The audit fields for a resource",
      "properties": {
        "by": {
          "default": null,
          "title": "By",
          "type": "string"
        },
        "byName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Byname"
        },
        "at": {
          "anyOf": [
            {
              "format": "date-time",
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "At"
        }
      },
      "title": "AuditFields",
      "type": "object"
    },
    "BatchData": {
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "Tags": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Tag"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A list of Tag objects or strings representing tags.",
          "title": "Tags"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "const": "Batch",
          "default": "Batch",
          "title": "Category",
          "type": "string"
        },
        "AssignedTo": {
          "anyOf": [
            {
              "$ref": "#/$defs/User"
            },
            {
              "$ref": "#/$defs/EntityLink"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Assignedto"
        },
        "Project": {
          "anyOf": [
            {
              "$ref": "#/$defs/Project"
            },
            {
              "$ref": "#/$defs/EntityLink"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Project"
        },
        "Location": {
          "anyOf": [
            {
              "$ref": "#/$defs/Location"
            },
            {
              "$ref": "#/$defs/EntityLink"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Location"
        },
        "batchSizeUnit": {
          "default": null,
          "title": "Batchsizeunit",
          "type": "string"
        },
        "Inventories": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/DataTemplateInventory"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Inventories"
        },
        "priority": {
          "$ref": "#/$defs/Priority"
        },
        "Workflow": {
          "default": null,
          "items": {
            "$ref": "#/$defs/EntityLink"
          },
          "title": "Workflow",
          "type": "array"
        },
        "notes": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Notes"
        },
        "dueDate": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Duedate"
        }
      },
      "required": [
        "priority"
      ],
      "title": "BatchData",
      "type": "object"
    },
    "Block": {
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "Tags": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Tag"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A list of Tag objects or strings representing tags.",
          "title": "Tags"
        },
        "Workflow": {
          "default": null,
          "items": {
            "$ref": "#/$defs/Workflow"
          },
          "title": "Workflow",
          "type": "array"
        },
        "Datatemplate": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/EntityLink"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Datatemplate"
        }
      },
      "title": "Block",
      "type": "object"
    },
    "CustomTemplateInventoryLot": {
      "description": "A lot reference within a custom template inventory entry.",
      "properties": {
        "id": {
          "description": "The Albert ID of the lot.",
          "title": "Id",
          "type": "string"
        },
        "barcode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The barcode of the lot.",
          "title": "Barcode"
        }
      },
      "required": [
        "id"
      ],
      "title": "CustomTemplateInventoryLot",
      "type": "object"
    },
    "DataTemplateInventory": {
      "description": "An inventory item reference within a custom template, with batch and lot details.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "$ref": "#/$defs/InventoryCategory"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The inventory category of the item."
        },
        "batchSize": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The batch size to use for this inventory item.",
          "title": "Batchsize"
        },
        "sheet": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Sheet"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Sheets associated with this inventory item in the template.",
          "title": "Sheet"
        },
        "Lots": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/CustomTemplateInventoryLot"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Lots associated with this inventory item in the template.",
          "title": "Lots"
        }
      },
      "required": [
        "id"
      ],
      "title": "DataTemplateInventory",
      "type": "object"
    },
    "Design": {
      "description": "One section of a Sheet, backing the grid for a single [`DesignType`][albert.resources.sheets.DesignType].\n\nA Sheet is made up of stacked sections (Product Design, Process Design,\nResults, and Apps) and each section is a Design. Designs are largely an\ninternal detail: most work is done through the parent [`Sheet`][albert.resources.sheets.Sheet], which\nexposes its Designs as [`product_design`][albert.resources.sheets.Sheet.product_design],\n[`result_design`][albert.resources.sheets.Sheet.result_design], [`app_design`][albert.resources.sheets.Sheet.app_design], and\n[`process_design`][albert.resources.sheets.Sheet.process_design]. A Design is a live grid element that carries the\nsession and lazily loads its rows, columns, and grid on first access.\nMethods\n-------\ngroup_rows(name, child_row_ids, ...) -> RowGroup\n    Create a named row group within this design.\nget_groups(refresh=False) -> list[RowGroup]\n    Get all row groups in this design.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "state": {
          "anyOf": [
            {
              "$ref": "#/$defs/DesignState"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The display state of the design. Optional. Default is None."
        },
        "albertId": {
          "description": "The Albert ID of the design.",
          "title": "Albertid",
          "type": "string"
        },
        "designType": {
          "anyOf": [
            {
              "$ref": "#/$defs/DesignType"
            },
            {
              "type": "string"
            }
          ],
          "description": "The section of the Sheet this design backs. See [`DesignType`][albert.resources.sheets.DesignType]. Unknown legacy/tenant values parse as plain strings.",
          "title": "Designtype"
        }
      },
      "required": [
        "albertId",
        "designType"
      ],
      "title": "Design",
      "type": "object"
    },
    "DesignLink": {
      "description": "A link to a worksheet design with its type.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        },
        "type": {
          "$ref": "#/$defs/DesignType",
          "description": "The design type (apps, products, results, or process)."
        }
      },
      "required": [
        "id",
        "type"
      ],
      "title": "DesignLink",
      "type": "object"
    },
    "DesignState": {
      "description": "The display state of a Design section within a Sheet.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "collapsed": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Whether the Design section is collapsed in the Sheet view. Default is False.",
          "title": "Collapsed"
        }
      },
      "title": "DesignState",
      "type": "object"
    },
    "DesignType": {
      "description": "The section of a Sheet that a Design represents.\n\nA Sheet is organized into stacked sections, each backed by a Design\n([`Design`][albert.resources.sheets.Design]). The type identifies which section:\n\n- ``PRODUCTS``: Product Design, where formulations are built.\n- ``PROCESS``: Process Design.\n- ``RESULTS``: Results, holding Property Tasks and their data.\n- ``APPS``: Apps, holding insights, reporting, and notes.",
      "enum": [
        "apps",
        "products",
        "results",
        "process",
        "reagents"
      ],
      "title": "DesignType",
      "type": "string"
    },
    "EntityLink": {
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLink",
      "type": "object"
    },
    "EntityLinkWithName": {
      "description": "EntityLink that includes the name field in serialization.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLinkWithName",
      "type": "object"
    },
    "GeneralData": {
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "Tags": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Tag"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A list of Tag objects or strings representing tags.",
          "title": "Tags"
        },
        "category": {
          "const": "General",
          "default": "General",
          "title": "Category",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "Project": {
          "anyOf": [
            {
              "$ref": "#/$defs/Project"
            },
            {
              "$ref": "#/$defs/EntityLink"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Project"
        },
        "Location": {
          "anyOf": [
            {
              "$ref": "#/$defs/Location"
            },
            {
              "$ref": "#/$defs/EntityLink"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Location"
        },
        "AssignedTo": {
          "anyOf": [
            {
              "$ref": "#/$defs/User"
            },
            {
              "$ref": "#/$defs/EntityLink"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Assignedto"
        },
        "notebookId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Notebookid"
        },
        "priority": {
          "anyOf": [
            {
              "$ref": "#/$defs/Priority"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "Sources": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/TaskSource"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Sources"
        },
        "parentId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Parentid"
        },
        "Metadata": {
          "anyOf": [
            {
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/EntityLinkWithName"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/EntityLinkWithName"
                        },
                        {
                          "$ref": "#/$defs/EntityLink"
                        }
                      ]
                    },
                    "type": "array"
                  }
                ]
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Metadata"
        },
        "notes": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Notes"
        }
      },
      "title": "GeneralData",
      "type": "object"
    },
    "GridDefault": {
      "description": "The default grid view shown for a project.\n\n- ``PD``: the Property Data grid.\n- ``WKS``: the Worksheet grid.",
      "enum": [
        "PD",
        "WKS"
      ],
      "title": "GridDefault",
      "type": "string"
    },
    "InventoryCategory": {
      "description": "The kind of material an [`InventoryItem`][albert.resources.inventory.InventoryItem] represents.\n\nEvery inventory item belongs to exactly one category, which determines how it\nis used across the platform and which fields are relevant to it.\n\nAttributes\n----------\nRAW_MATERIALS : str\n    A purchased substance used as an ingredient (e.g. a solvent or pigment).\n    Typically linked to a manufacturing ``company`` and one or more CAS numbers.\nCONSUMABLES : str\n    Lab supplies consumed during work (e.g. gloves, vials, filters).\nEQUIPMENT : str\n    Instruments and apparatus (e.g. a balance or spectrometer).\nFORMULAS : str\n    A mixture designed in Albert through a Worksheet. Formulas are not created\n    through the inventory collection; they are produced by the Worksheet\n    collection ([`WorksheetCollection`][albert.collections.worksheets.WorksheetCollection]).",
      "enum": [
        "RawMaterials",
        "Consumables",
        "Equipment",
        "Formulas"
      ],
      "title": "InventoryCategory",
      "type": "string"
    },
    "JobStatus": {
      "description": "The status of a SAM (self-automating method) configuration job.\n\nAttributes\n----------\nACTIVE : str\n    The job is active.\nINACTIVE : str\n    The job is inactive.\nQUEUED : str\n    The job is queued to run.",
      "enum": [
        "active",
        "inactive",
        "queued"
      ],
      "title": "JobStatus",
      "type": "string"
    },
    "Location": {
      "description": "A physical lab or site location in Albert.\n\nLocations are referenced by Tasks and Inventory Items to record where an\nactivity is performed or where a material lives, and each Location can hold\none or more Storage Locations\n([`StorageLocation`][albert.resources.storage_locations.StorageLocation]). Managed\nthrough [`LocationCollection`][albert.collections.locations.LocationCollection].\n\n!!! example\n    ```python\n    from albert.resources.locations import Location\n    location = Location(\n        name=\"Boston Lab\",\n        latitude=42.3601,\n        longitude=-71.0589,\n        address=\"1 Main St\",\n        country=\"US\",\n    )\n    ```",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The human-readable name of the location.",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the location. Assigned by Albert and populated once the location has been created or retrieved.",
          "title": "Albertid"
        },
        "latitude": {
          "description": "The latitude of the location, in decimal degrees.",
          "title": "Latitude",
          "type": "number"
        },
        "longitude": {
          "description": "The longitude of the location, in decimal degrees.",
          "title": "Longitude",
          "type": "number"
        },
        "address": {
          "description": "The street address of the location.",
          "title": "Address",
          "type": "string"
        },
        "country": {
          "anyOf": [
            {
              "maxLength": 2,
              "minLength": 2,
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The two-letter country code of the location (for example, ``\"US\"``).",
          "title": "Country"
        }
      },
      "required": [
        "name",
        "latitude",
        "longitude",
        "address"
      ],
      "title": "Location",
      "type": "object"
    },
    "MemberACL": {
      "properties": {
        "id": {
          "description": "The id of the user for which this ACL applies",
          "title": "Id",
          "type": "string"
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Fine-Grain Control Level"
        },
        "type": {
          "default": "member",
          "enum": [
            "member",
            "CustomTemplateMember"
          ],
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "title": "MemberACL",
      "type": "object"
    },
    "NotebookData": {
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "Tags": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Tag"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A list of Tag objects or strings representing tags.",
          "title": "Tags"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Albertid"
        },
        "category": {
          "const": "Notebook",
          "default": "Notebook",
          "title": "Category",
          "type": "string"
        }
      },
      "title": "NotebookData",
      "type": "object"
    },
    "OwnerACL": {
      "properties": {
        "id": {
          "description": "The id of the user for which this ACL applies",
          "title": "Id",
          "type": "string"
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Fine-Grain Control Level"
        },
        "type": {
          "default": "owner",
          "enum": [
            "owner",
            "CustomTemplateOwner"
          ],
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "title": "OwnerACL",
      "type": "object"
    },
    "Priority": {
      "description": "The priority assigned to a task created from a template.\n\nAttributes\n----------\nLOW : str\n    Low priority.\nMEDIUM : str\n    Medium priority.\nHIGH : str\n    High priority.",
      "enum": [
        "Low",
        "Medium",
        "High"
      ],
      "title": "Priority",
      "type": "string"
    },
    "Project": {
      "description": "A project in Albert: the top-level container for a piece of R&D work.\n\nA project groups the formulations designed for the work, its Worksheet (1:1\nwith the project), the Tasks run against it, and the inventory it references.\nCreate and manage projects through the\n[`ProjectCollection`][albert.collections.projects.ProjectCollection] (``client.projects``).\n\nOnly ``description`` is required to build one; it doubles as the project's\ndisplay name. The ``id`` and ``state`` are assigned by Albert and are read\nonly from the client's perspective.\n\n!!! example\n    ```python\n    from albert import Albert\n    from albert.resources.projects import Project, ProjectClass\n    client = Albert()\n    project = client.projects.create(\n        project=Project(\n            description=\"Weatherproof Coatings 2026\",\n            project_class=ProjectClass.SHARED,\n        )\n    )\n    project.id\n    # 'PRO123'\n    ```",
      "properties": {
        "status": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Read-only status string returned by Albert.",
          "title": "Status"
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "description": {
          "description": "Human-readable project name/description (1-2000 characters). Also serves as the project's display name.",
          "maxLength": 2000,
          "minLength": 1,
          "title": "Description",
          "type": "string"
        },
        "Locations": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Location"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "maxItems": 20,
              "minItems": 1,
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The locations the project is associated with. Optional.",
          "title": "Locations"
        },
        "class": {
          "anyOf": [
            {
              "$ref": "#/$defs/ProjectClass"
            },
            {
              "type": "null"
            }
          ],
          "default": "private",
          "description": "Access-control class (private, shared, or confidential). Defaults to private."
        },
        "prefix": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Optional prefix used when naming entities within the project.",
          "title": "Prefix"
        },
        "appEngg": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Inventory Ids to be added as application engineering",
          "title": "Appengg"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert Project ID (format ``PRO...``). Assigned by Albert and present once the project has been created or retrieved.",
          "title": "Albertid"
        },
        "ACL": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/ACL"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "Access-control entries controlling who can access the project. Optional.",
          "title": "Acl"
        },
        "old_api_params": {
          "anyOf": [
            {
              "additionalProperties": true,
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Read-only. Do not use.",
          "title": "Old Api Params"
        },
        "task_config": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/TaskConfig"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "description": "Default task settings applied to tasks created within the project.",
          "title": "Task Config"
        },
        "grid": {
          "anyOf": [
            {
              "$ref": "#/$defs/GridDefault"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The default grid view (Property Data or Worksheet) shown for the project."
        },
        "Metadata": {
          "anyOf": [
            {
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/EntityLinkWithName"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/EntityLinkWithName"
                        },
                        {
                          "$ref": "#/$defs/EntityLink"
                        }
                      ]
                    },
                    "type": "array"
                  }
                ]
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Custom field values. Allowed keys and values are defined via the Custom Fields API. Optional.",
          "title": "Metadata"
        },
        "state": {
          "anyOf": [
            {
              "$ref": "#/$defs/State"
            },
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The project's lifecycle state. Read only on create; can be changed via [`update`][albert.collections.projects.ProjectCollection.update]. Tenant-customized states outside [`State`][albert.resources.projects.State] parse as plain strings.",
          "title": "State"
        }
      },
      "required": [
        "description"
      ],
      "title": "Project",
      "type": "object"
    },
    "ProjectClass": {
      "description": "The access-control class of a project, governing who can see it.\n\n- ``PRIVATE``: visible only to the project's ACL members (the default).\n- ``SHARED``: visible more broadly across the organization.\n- ``CONFIDENTIAL``: restricted, most tightly controlled access.",
      "enum": [
        "shared",
        "confidential",
        "private"
      ],
      "title": "ProjectClass",
      "type": "string"
    },
    "PropertyData": {
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "Tags": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Tag"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A list of Tag objects or strings representing tags.",
          "title": "Tags"
        },
        "category": {
          "const": "Property",
          "default": "Property",
          "title": "Category",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "Blocks": {
          "items": {
            "$ref": "#/$defs/Block"
          },
          "title": "Blocks",
          "type": "array"
        },
        "priority": {
          "$ref": "#/$defs/Priority"
        },
        "Location": {
          "anyOf": [
            {
              "$ref": "#/$defs/Location"
            },
            {
              "$ref": "#/$defs/EntityLink"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Location"
        },
        "AssignedTo": {
          "anyOf": [
            {
              "$ref": "#/$defs/User"
            },
            {
              "$ref": "#/$defs/EntityLink"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Assignedto"
        },
        "Project": {
          "anyOf": [
            {
              "$ref": "#/$defs/Project"
            },
            {
              "$ref": "#/$defs/EntityLink"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Project"
        },
        "Inventories": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/DataTemplateInventory"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Inventories"
        },
        "dueDate": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Duedate"
        },
        "notes": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Notes"
        }
      },
      "required": [
        "priority"
      ],
      "title": "PropertyData",
      "type": "object"
    },
    "QCBatchData": {
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "Tags": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Tag"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A list of Tag objects or strings representing tags.",
          "title": "Tags"
        },
        "category": {
          "const": "BatchWithQC",
          "default": "BatchWithQC",
          "title": "Category",
          "type": "string"
        },
        "Project": {
          "anyOf": [
            {
              "$ref": "#/$defs/Project"
            },
            {
              "$ref": "#/$defs/EntityLink"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Project"
        },
        "Inventories": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/DataTemplateInventory"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Inventories"
        },
        "Workflow": {
          "default": null,
          "items": {
            "$ref": "#/$defs/EntityLink"
          },
          "title": "Workflow",
          "type": "array"
        },
        "Location": {
          "anyOf": [
            {
              "$ref": "#/$defs/Location"
            },
            {
              "$ref": "#/$defs/EntityLink"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Location"
        },
        "batchSizeUnit": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Batchsizeunit"
        },
        "batchSize": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Batchsize"
        },
        "priority": {
          "$ref": "#/$defs/Priority"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        }
      },
      "required": [
        "priority"
      ],
      "title": "QCBatchData",
      "type": "object"
    },
    "Role": {
      "description": "A named set of access permissions within a tenant.\n\nA role bundles policies that determine what a holder is allowed to do. Roles\nare assigned to users ([`User`][albert.resources.users.User]) and referenced\nby entity ACLs. Roles are typically read from Albert rather than built by\nhand.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the role. Role IDs may contain ``#`` characters. Set once the role is retrieved from Albert.",
          "title": "Albertid"
        },
        "name": {
          "description": "The display name of the role.",
          "title": "Name",
          "type": "string"
        },
        "Policies": {
          "anyOf": [
            {
              "items": {},
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The policies (permission rules) associated with the role.",
          "title": "Policies"
        },
        "tenant": {
          "description": "The ID of the tenant the role belongs to.",
          "title": "Tenant",
          "type": "string"
        },
        "visibility": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the role is visible in the platform's role listings.",
          "title": "Visibility"
        }
      },
      "required": [
        "name",
        "tenant"
      ],
      "title": "Role",
      "type": "object"
    },
    "SamConfig": {
      "description": "A SAM (Sample Analysis Module) machine configuration.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/JobStatus"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the SAM job."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "configurationName": {
          "description": "The name of the configuration.",
          "title": "Configurationname",
          "type": "string"
        },
        "configurationId": {
          "description": "The identifier of the configuration.",
          "title": "Configurationid",
          "type": "string"
        },
        "machineId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The identifier of the machine.",
          "title": "Machineid"
        },
        "input": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/SamInput"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The input parameters for this configuration.",
          "title": "Input"
        }
      },
      "required": [
        "configurationName",
        "configurationId"
      ],
      "title": "SamConfig",
      "type": "object"
    },
    "SamInput": {
      "description": "An input parameter for a SAM (Sample Analysis Module) configuration.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "Value": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The value of the input parameter.",
          "title": "Value"
        },
        "Unit": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The unit of the input parameter.",
          "title": "Unit"
        },
        "Name": {
          "description": "The name of the input parameter.",
          "title": "Name",
          "type": "string"
        }
      },
      "required": [
        "Name"
      ],
      "title": "SamInput",
      "type": "object"
    },
    "Sheet": {
      "description": "An interactive grid within a Worksheet where formulations are built.\n\nA Sheet is one grid inside a Worksheet ([`Worksheet`][albert.resources.worksheets.Worksheet]).\nIt is organized into stacked sections, each a [`Design`][albert.resources.sheets.Design]: Product Design\n(where formulations are built), Process Design, Results (Property Tasks and\ntheir data), and Apps (insights and notes). Access those sections through\n[`product_design`][albert.resources.sheets.Sheet.product_design], [`process_design`][albert.resources.sheets.Sheet.process_design], [`result_design`][albert.resources.sheets.Sheet.result_design], and\n[`app_design`][albert.resources.sheets.Sheet.app_design].\n\nA Sheet Column can be a formulation (the most common case for the SDK), a\nlookup column that displays an inventory attribute, or an ingredient name.\nRows typically represent ingredients (inventory items) and their amounts.\nAdding a formulation to a Sheet is what registers a Formula inventory item.\n\nThe Sheet is a live grid element that carries the session; its cells, columns,\nand rows are themselves interactive. Retrieve a Sheet from a Worksheet's\n[`sheets`][albert.resources.worksheets.Worksheet.sheets], then edit it in place\nwith the methods below.\n\n!!! example\n    ```python\n    from albert import Albert\n    client = Albert()\n    worksheet = client.worksheets.get_by_project_id(project_id=\"PROA9999999\")\n    sheet = worksheet.sheets[0]\n    print(sheet.grid)\n    ```\nMethods\n-------\nrename(new_name) -> Sheet\n    Rename the sheet.\nadd_formulation(formulation_name, components, ...) -> Column\n    Build a formulation column from a list of components (registers a Formula).\nadd_components_to_formulation(components, ...) -> Column\n    Add components to an existing formulation column.\nadd_formulation_columns(formulation_names, ...) -> list[Column]\n    Add one or more empty formulation columns.\nadd_inventory_row(inventory_id, ...) -> Row\n    Add an ingredient (inventory) row.\nadd_blank_row(row_name, ...) -> Row\n    Add a blank row.\nadd_lookup_row(name, ...) -> Row\n    Add a lookup row.\nadd_app_row(app_id, name, ...) -> Row\n    Add an application row.\nadd_parameter_group_row(parameter_group_id, ...) -> Row\n    Add a parameter group (PRG) row to Process Design.\nadd_blank_column(name, ...) -> Column\n    Add a blank column.\nadd_lookup_column(name, ...) -> Column\n    Add a lookup column.\nadd_function_column(name, ...) -> Column\n    Add a function column.\nadd_property_column(name, attribute_id, ...) -> Column\n    Add a property/result column.\nget_column(...) -> Column\n    Retrieve a column by column ID, inventory ID, or name.\nupdate_cells(cells) -> tuple[list[Cell], list[Cell]]\n    Write changed cells back to the sheet.\npin_columns(col_ids, side) -> None\n    Pin columns to the left or right edge.\nunpin_columns(col_ids) -> None\n    Unpin columns.\nlock_column(...) -> Column\n    Lock or unlock a column.\nhide_column(col_id) -> None\n    Hide a column.\nshow_column(col_id) -> None\n    Show a hidden column.\nset_columns_width(col_ids, width) -> None\n    Set the display width of columns.\ndelete_column(column_id) -> None\n    Delete a column.\ndelete_row(row_id, design_id) -> None\n    Delete a row.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "albertId": {
          "description": "The Albert ID of the sheet.",
          "title": "Albertid",
          "type": "string"
        },
        "name": {
          "description": "The name of the sheet.",
          "title": "Name",
          "type": "string"
        },
        "Formulas": {
          "description": "References to the formulations present on the sheet.",
          "items": {
            "$ref": "#/$defs/SheetFormulationRef"
          },
          "title": "Formulas",
          "type": "array"
        },
        "hidden": {
          "description": "Whether the sheet is hidden.",
          "title": "Hidden",
          "type": "boolean"
        },
        "isColumnRight": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "When True, copied columns are placed to the right of the source column; when False, to the left.",
          "title": "Iscolumnright"
        },
        "colSizeMode": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Column width sizing mode. Allowed values are ``\"minimum\"`` and ``\"fitToColumn\"``. ``None`` resets to the default grid width.",
          "title": "Colsizemode"
        },
        "Designs": {
          "description": "The Designs (sections) of the sheet.",
          "items": {
            "$ref": "#/$defs/Design"
          },
          "title": "Designs",
          "type": "array"
        },
        "projectId": {
          "description": "The ID of the Project the sheet belongs to (format ``PRO...``).",
          "title": "Projectid",
          "type": "string"
        }
      },
      "required": [
        "albertId",
        "name",
        "hidden",
        "Designs",
        "projectId"
      ],
      "title": "Sheet",
      "type": "object"
    },
    "SheetData": {
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "Tags": {
          "anyOf": [
            {
              "items": {
                "anyOf": [
                  {
                    "$ref": "#/$defs/Tag"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  }
                ]
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A list of Tag objects or strings representing tags.",
          "title": "Tags"
        },
        "category": {
          "const": "Sheet",
          "default": "Sheet",
          "title": "Category",
          "type": "string"
        },
        "Designs": {
          "default": null,
          "items": {
            "$ref": "#/$defs/DesignLink"
          },
          "title": "Designs",
          "type": "array"
        },
        "FormulaInfo": {
          "items": {},
          "title": "Formulainfo",
          "type": "array"
        },
        "TaskRows": {
          "items": {
            "$ref": "#/$defs/EntityLink"
          },
          "title": "Taskrows",
          "type": "array"
        }
      },
      "title": "SheetData",
      "type": "object"
    },
    "SheetFormulationRef": {
      "description": "A reference to a formulation in a sheet",
      "properties": {
        "id": {
          "description": "The Albert ID of the inventory item that is the formulation",
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The name of the formulation",
          "title": "Name"
        },
        "hidden": {
          "description": "Whether the formulation is hidden",
          "title": "Hidden",
          "type": "boolean"
        }
      },
      "required": [
        "id",
        "hidden"
      ],
      "title": "SheetFormulationRef",
      "type": "object"
    },
    "State": {
      "description": "The lifecycle state of a project.\n\nThe set of allowed states is customizable per tenant via the entity-status\nAPI; these are the platform defaults. Unknown tenant-specific values are\ntolerated as plain strings on [`Project.state`][albert.resources.projects.Project.state].",
      "enum": [
        "Not Started",
        "Active",
        "Closed - Success",
        "Closed - Archived",
        "Just Started",
        "In Progress"
      ],
      "title": "State",
      "type": "string"
    },
    "Status": {
      "description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n    The resource is fully operational and visible in normal operations.\nINACTIVE : str\n    The resource is hidden from normal operations and disabled from use.",
      "enum": [
        "active",
        "inactive"
      ],
      "title": "Status",
      "type": "string"
    },
    "Tag": {
      "description": "A freeform text label used to categorize and connect entities.\n\nTags are shared by name across the platform and can be applied to inventory\nitems, companies, tasks, and other records to group and filter them. Managed\nthrough [`TagCollection`][albert.collections.tags.TagCollection] (``client.tags``);\nthe usual entry point is [`get_or_create`][albert.collections.tags.TagCollection.get_or_create].\n\n!!! example\n    ```python\n    from albert.resources.tags import Tag\n    tag = Tag(tag=\"high-priority\")\n    ```\nMethods\n-------\nfrom_string(tag) -> Tag\n    Build a Tag from its name string.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The name of the tag (its text label).",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the tag (format ``TAG...``). Set when the tag is retrieved from or created in Albert. Methods ------- from_string(tag) -> Tag Build a Tag from its name string.",
          "title": "Albertid"
        }
      },
      "required": [
        "name"
      ],
      "title": "Tag",
      "type": "object"
    },
    "TaskConfig": {
      "description": "Default task settings applied when tasks are created within a project.",
      "properties": {
        "datatemplateId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "ID of the data template tasks default to.",
          "title": "Datatemplateid"
        },
        "workflowId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "ID of the workflow tasks default to.",
          "title": "Workflowid"
        },
        "defaultTaskName": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Default name applied to new tasks.",
          "title": "Defaulttaskname"
        },
        "target": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Default target for the configured tasks.",
          "title": "Target"
        },
        "hidden": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": false,
          "description": "Whether this configuration is hidden in the UI.",
          "title": "Hidden"
        }
      },
      "title": "TaskConfig",
      "type": "object"
    },
    "TaskSource": {
      "description": "A reference to the task or template a task was created from.\n\nRecorded in [`sources`][albert.resources.tasks.BaseTask.sources] to trace where a task originated.",
      "properties": {
        "id": {
          "description": "The ID of the originating task or template.",
          "title": "Id",
          "type": "string"
        },
        "type": {
          "$ref": "#/$defs/TaskSourceType",
          "description": "Whether ``id`` points to a task or a template."
        }
      },
      "required": [
        "id",
        "type"
      ],
      "title": "TaskSource",
      "type": "object"
    },
    "TaskSourceType": {
      "description": "What kind of thing a task was created from.\n\nAttributes\n----------\nTASK : str\n    The task was created from another existing task (``\"task\"``).\nTEMPLATE : str\n    The task was created from a task template (``\"template\"``).",
      "enum": [
        "task",
        "template"
      ],
      "title": "TaskSourceType",
      "type": "string"
    },
    "TeamACL": {
      "properties": {
        "id": {
          "description": "The id of the user for which this ACL applies",
          "title": "Id",
          "type": "string"
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Fine-Grain Control Level"
        },
        "type": {
          "default": "team",
          "enum": [
            "team",
            "CustomTemplateTeam"
          ],
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "title": "TeamACL",
      "type": "object"
    },
    "TemplateACL": {
      "description": "Access control settings for a custom template.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "fgclist": {
          "default": null,
          "description": "The list of access control entries (team, owner, member, viewer).",
          "items": {
            "discriminator": {
              "mapping": {
                "CustomTemplateMember": "#/$defs/MemberACL",
                "CustomTemplateOwner": "#/$defs/OwnerACL",
                "CustomTemplateTeam": "#/$defs/TeamACL",
                "CustomTemplateViewer": "#/$defs/ViewerACL",
                "member": "#/$defs/MemberACL",
                "owner": "#/$defs/OwnerACL",
                "team": "#/$defs/TeamACL",
                "viewer": "#/$defs/ViewerACL"
              },
              "propertyName": "type"
            },
            "oneOf": [
              {
                "$ref": "#/$defs/TeamACL"
              },
              {
                "$ref": "#/$defs/OwnerACL"
              },
              {
                "$ref": "#/$defs/MemberACL"
              },
              {
                "$ref": "#/$defs/ViewerACL"
              }
            ]
          },
          "title": "Fgclist",
          "type": "array"
        },
        "class": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The default access class for the template.",
          "title": "Class"
        }
      },
      "title": "TemplateACL",
      "type": "object"
    },
    "TemplateCategory": {
      "description": "The kind of entity a custom template configures.\n\nAttributes\n----------\nPROPERTY_LIST : str\n    A property task template (``\"Property Task\"``).\nPROPERTY : str\n    A property (measurement) template.\nBATCH : str\n    A batch (formulation) task template.\nSHEET : str\n    A worksheet template.\nNOTEBOOK : str\n    A notebook template.\nGENERAL : str\n    A general task template.\nQC_BATCH : str\n    A batch task template with quality-control steps (``\"BatchWithQC\"``).",
      "enum": [
        "Property Task",
        "Property",
        "Batch",
        "Sheet",
        "Notebook",
        "General",
        "BatchWithQC"
      ],
      "title": "TemplateCategory",
      "type": "string"
    },
    "TemplateEntityType": {
      "description": "The entity type associated with a custom template.",
      "properties": {
        "id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert ID of the entity type.",
          "title": "Id"
        },
        "customCategory": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "A custom category name for the entity type.",
          "title": "Customcategory"
        }
      },
      "title": "TemplateEntityType",
      "type": "object"
    },
    "User": {
      "description": "An Albert user account: a person who can log in and act in the platform.\n\nA user has a name and email, an optional home\n[`Location`][albert.resources.locations.Location], and a set of\n[`Role`][albert.resources.roles.Role] objects that govern what they can do.\nThe ``user_class`` sets a broad permission tier\n([`UserClass`][albert.resources.users.UserClass]). Users are grouped into teams\n([`Team`][albert.resources.teams.Team]), and are referenced across the\nplatform, for example as the assignee of a Task or in an entity's ACL.\n\n!!! example\n    ```python\n    from albert.resources.users import User, UserClass\n    user = User(\n        name=\"Ada Lovelace\",\n        email=\"ada@example.com\",\n        user_class=UserClass.STANDARD,\n    )\n    ```",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "name": {
          "description": "The display name of the user.",
          "title": "Name",
          "type": "string"
        },
        "albertId": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Albert User ID (format ``USR...``). Set once the user is registered in or retrieved from Albert.",
          "title": "Albertid"
        },
        "Location": {
          "anyOf": [
            {
              "$ref": "#/$defs/Location"
            },
            {
              "$ref": "#/$defs/EntityLink"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The user's home location.",
          "title": "Location"
        },
        "email": {
          "default": null,
          "description": "The user's email address.",
          "format": "email",
          "title": "Email",
          "type": "string"
        },
        "Roles": {
          "description": "The roles the user holds, which determine their permissions.",
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/Role"
              },
              {
                "$ref": "#/$defs/EntityLink"
              }
            ]
          },
          "maxItems": 1,
          "title": "Roles",
          "type": "array"
        },
        "userClass": {
          "$ref": "#/$defs/UserClass",
          "default": "standard",
          "description": "The ACL class level of the user (broad permission tier)."
        },
        "witnesser": {
          "anyOf": [
            {
              "type": "boolean"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Whether the user can act as a witness on tasks (only relevant when witnessing is enabled for the tenant).",
          "title": "Witnesser"
        },
        "Metadata": {
          "anyOf": [
            {
              "additionalProperties": {
                "anyOf": [
                  {
                    "type": "number"
                  },
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  },
                  {
                    "$ref": "#/$defs/EntityLinkWithName"
                  },
                  {
                    "$ref": "#/$defs/EntityLink"
                  },
                  {
                    "items": {
                      "anyOf": [
                        {
                          "$ref": "#/$defs/EntityLinkWithName"
                        },
                        {
                          "$ref": "#/$defs/EntityLink"
                        }
                      ]
                    },
                    "type": "array"
                  }
                ]
              },
              "type": "object"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Custom metadata attached to the user.",
          "title": "Metadata"
        }
      },
      "required": [
        "name"
      ],
      "title": "User",
      "type": "object"
    },
    "UserClass": {
      "description": "The ACL class level of a user, setting a broad permission tier.\n\nAttributes\n----------\nGUEST : str\n    Most limited access; typically external or temporary users.\nSTANDARD : str\n    Default access level for regular users.\nTRUSTED : str\n    Elevated access above standard users.\nPRIVILEGED : str\n    High access level below full administrators.\nADMIN : str\n    Full administrative access to the tenant.",
      "enum": [
        "guest",
        "standard",
        "trusted",
        "privileged",
        "admin"
      ],
      "title": "UserClass",
      "type": "string"
    },
    "ViewerACL": {
      "properties": {
        "id": {
          "description": "The id of the user for which this ACL applies",
          "title": "Id",
          "type": "string"
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Fine-Grain Control Level"
        },
        "type": {
          "default": "viewer",
          "enum": [
            "viewer",
            "CustomTemplateViewer"
          ],
          "title": "Type",
          "type": "string"
        }
      },
      "required": [
        "id"
      ],
      "title": "ViewerACL",
      "type": "object"
    },
    "Workflow": {
      "description": "A workflow reference within a custom template.",
      "properties": {
        "status": {
          "anyOf": [
            {
              "$ref": "#/$defs/Status"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The status of the resource, optional."
        },
        "Created": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the creation of the resource, optional."
        },
        "Updated": {
          "anyOf": [
            {
              "$ref": "#/$defs/AuditFields"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "Audit fields for the update of the resource, optional."
        },
        "id": {
          "description": "The Albert ID of the workflow.",
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The name of the workflow.",
          "title": "Name"
        },
        "SamConfig": {
          "anyOf": [
            {
              "items": {
                "$ref": "#/$defs/SamConfig"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "SAM configurations associated with this workflow, if any.",
          "title": "Samconfig"
        }
      },
      "required": [
        "id"
      ],
      "title": "Workflow",
      "type": "object"
    }
  },
  "description": "A reusable custom template in Albert.\n\nA custom template captures a standard entity setup so it can be applied\nrepeatedly. Its [`category`][albert.resources.custom_templates.CustomTemplate.category] selects what kind of entity it configures\n(see [`TemplateCategory`][albert.resources.custom_templates.TemplateCategory]), and its [`data`][albert.resources.custom_templates.CustomTemplate.data] holds the category-\nspecific defaults (project, location, assignee, inventories, workflow,\npriority, and so on). Manage templates through\n[`CustomTemplatesCollection`][albert.collections.custom_templates.CustomTemplatesCollection].\n\n!!! example\n    ```python\n    from albert.resources.custom_templates import CustomTemplate, TemplateCategory\n    template = CustomTemplate(\n        name=\"Standard Property Task\",\n        category=TemplateCategory.PROPERTY,\n    )\n    ```",
  "properties": {
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/Status"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The status of the resource, optional."
    },
    "Created": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the creation of the resource, optional."
    },
    "Updated": {
      "anyOf": [
        {
          "$ref": "#/$defs/AuditFields"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Audit fields for the update of the resource, optional."
    },
    "Tags": {
      "anyOf": [
        {
          "items": {
            "anyOf": [
              {
                "$ref": "#/$defs/Tag"
              },
              {
                "$ref": "#/$defs/EntityLink"
              }
            ]
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "A list of Tag objects or strings representing tags.",
      "title": "Tags"
    },
    "name": {
      "description": "The name of the template.",
      "title": "Name",
      "type": "string"
    },
    "albertId": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The Custom Template ID (format ``CTP...``). Set when the template is retrieved from or created in Albert.",
      "title": "Albertid"
    },
    "category": {
      "$ref": "#/$defs/TemplateCategory",
      "default": "General",
      "description": "The kind of entity the template configures. Defaults to ``TemplateCategory.GENERAL``."
    },
    "Metadata": {
      "anyOf": [
        {
          "additionalProperties": {
            "anyOf": [
              {
                "type": "number"
              },
              {
                "type": "integer"
              },
              {
                "type": "string"
              },
              {
                "$ref": "#/$defs/EntityLinkWithName"
              },
              {
                "$ref": "#/$defs/EntityLink"
              },
              {
                "items": {
                  "anyOf": [
                    {
                      "$ref": "#/$defs/EntityLinkWithName"
                    },
                    {
                      "$ref": "#/$defs/EntityLink"
                    }
                  ]
                },
                "type": "array"
              }
            ]
          },
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Metadata values for the template. Allowed metadata keys are those defined as Custom Fields (see [`CustomFieldCollection`][albert.collections.custom_fields.CustomFieldCollection]).",
      "title": "Metadata"
    },
    "Data": {
      "anyOf": [
        {
          "discriminator": {
            "mapping": {
              "Batch": "#/$defs/BatchData",
              "BatchWithQC": "#/$defs/QCBatchData",
              "General": "#/$defs/GeneralData",
              "Notebook": "#/$defs/NotebookData",
              "Property": "#/$defs/PropertyData",
              "Sheet": "#/$defs/SheetData"
            },
            "propertyName": "category"
          },
          "oneOf": [
            {
              "$ref": "#/$defs/PropertyData"
            },
            {
              "$ref": "#/$defs/BatchData"
            },
            {
              "$ref": "#/$defs/SheetData"
            },
            {
              "$ref": "#/$defs/NotebookData"
            },
            {
              "$ref": "#/$defs/QCBatchData"
            },
            {
              "$ref": "#/$defs/GeneralData"
            }
          ]
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The category-specific configuration the template applies.",
      "title": "Data"
    },
    "EntityType": {
      "anyOf": [
        {
          "$ref": "#/$defs/TemplateEntityType"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The entity type associated with the template."
    },
    "locked": {
      "anyOf": [
        {
          "type": "boolean"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Whether the template is locked when loaded in the UI.",
      "title": "Locked"
    },
    "team": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/TeamACL"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "description": "The teams associated with the template.",
      "title": "Team"
    },
    "ACL": {
      "anyOf": [
        {
          "$ref": "#/$defs/TemplateACL"
        },
        {
          "type": "null"
        }
      ],
      "description": "The access-control list governing who can use the template."
    }
  },
  "required": [
    "name"
  ],
  "title": "CustomTemplate",
  "type": "object"
}

Fields:

Validators:

name

name: str

The name of the template.

id

id: CustomTemplateId | None = None

The Custom Template ID (format CTP...). Set when the template is retrieved from or created in Albert.

category

The kind of entity the template configures. Defaults to TemplateCategory.GENERAL.

metadata

metadata: dict[str, MetadataItem] | None = None

Metadata values for the template. Allowed metadata keys are those defined as Custom Fields (see CustomFieldCollection).

data

data: CustomTemplateData | None = None

The category-specific configuration the template applies.

entity_type

entity_type: TemplateEntityType | None = None

The entity type associated with the template.

locked

locked: bool | None = None

Whether the template is locked when loaded in the UI.

team

team: list[TeamACL] | None

The teams associated with the template.

acl

acl: TemplateACL | None

The access-control list governing who can use the template.

add_missing_category

add_missing_category(
    data: dict[str, Any],
) -> dict[str, Any]

Initialize private attributes from the incoming data dictionary before the model is fully constructed.

Source code in src/albert/resources/custom_templates.py
@model_validator(mode="before")  # Must happen before construction so the data are captured
@classmethod
def add_missing_category(cls, data: dict[str, Any]) -> dict[str, Any]:
    """
    Initialize private attributes from the incoming data dictionary before the model is fully constructed.
    """
    if not isinstance(data, dict):
        return data

    data_payload = data.get("Data")
    category = data.get("category")
    if isinstance(data_payload, dict) and category is not None:
        data_payload.setdefault("category", category)
    return data

CustomTemplateSearchItemData

Bases: BaseAlbertModel

Show JSON schema:
{
  "$defs": {
    "DesignLink": {
      "description": "A link to a worksheet design with its type.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        },
        "type": {
          "$ref": "#/$defs/DesignType",
          "description": "The design type (apps, products, results, or process)."
        }
      },
      "required": [
        "id",
        "type"
      ],
      "title": "DesignLink",
      "type": "object"
    },
    "DesignType": {
      "description": "The section of a Sheet that a Design represents.\n\nA Sheet is organized into stacked sections, each backed by a Design\n([`Design`][albert.resources.sheets.Design]). The type identifies which section:\n\n- ``PRODUCTS``: Product Design, where formulations are built.\n- ``PROCESS``: Process Design.\n- ``RESULTS``: Results, holding Property Tasks and their data.\n- ``APPS``: Apps, holding insights, reporting, and notes.",
      "enum": [
        "apps",
        "products",
        "results",
        "process",
        "reagents"
      ],
      "title": "DesignType",
      "type": "string"
    },
    "EntityLink": {
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLink",
      "type": "object"
    }
  },
  "properties": {
    "Designs": {
      "default": null,
      "items": {
        "$ref": "#/$defs/DesignLink"
      },
      "title": "Designs",
      "type": "array"
    },
    "FormulaInfo": {
      "items": {},
      "title": "Formulainfo",
      "type": "array"
    },
    "TaskRows": {
      "items": {
        "$ref": "#/$defs/EntityLink"
      },
      "title": "Taskrows",
      "type": "array"
    }
  },
  "title": "CustomTemplateSearchItemData",
  "type": "object"
}

Fields:

designs

designs: list[DesignLink] = None

formula_info

formula_info: list

task_rows

task_rows: list[EntityLink]

CustomTemplateSearchItemACL

Bases: ACL

Show JSON schema:
{
  "$defs": {
    "ACLType": {
      "description": "The kind of access-control entry on a custom template.\n\nAttributes\n----------\nTEAM : str\n    A team-level access entry.\nMEMBER : str\n    A member with edit access.\nOWNER : str\n    An owner with full control.\nVIEWER : str\n    A viewer with read-only access.",
      "enum": [
        "team",
        "member",
        "owner",
        "viewer"
      ],
      "title": "ACLType",
      "type": "string"
    },
    "AccessControlLevel": {
      "description": "Access control levels you can grant users.",
      "enum": [
        "ProjectOwner",
        "ProjectEditor",
        "ProjectViewer",
        "ProjectAllTask",
        "ProjectStrictViewer",
        "ProjectPropertyTask",
        "InventoryOwner",
        "InventoryViewer",
        "CustomTemplateOwner",
        "CustomTemplateViewer",
        "CASFullAccess"
      ],
      "title": "AccessControlLevel",
      "type": "string"
    },
    "UserClass": {
      "description": "The ACL class level of a user, setting a broad permission tier.\n\nAttributes\n----------\nGUEST : str\n    Most limited access; typically external or temporary users.\nSTANDARD : str\n    Default access level for regular users.\nTRUSTED : str\n    Elevated access above standard users.\nPRIVILEGED : str\n    High access level below full administrators.\nADMIN : str\n    Full administrative access to the tenant.",
      "enum": [
        "guest",
        "standard",
        "trusted",
        "privileged",
        "admin"
      ],
      "title": "UserClass",
      "type": "string"
    }
  },
  "properties": {
    "id": {
      "description": "The id of the user for which this ACL applies",
      "title": "Id",
      "type": "string"
    },
    "fgc": {
      "anyOf": [
        {
          "$ref": "#/$defs/AccessControlLevel"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The Fine-Grain Control Level"
    },
    "name": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Name"
    },
    "userType": {
      "anyOf": [
        {
          "$ref": "#/$defs/UserClass"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "type": {
      "$ref": "#/$defs/ACLType"
    }
  },
  "required": [
    "id",
    "type"
  ],
  "title": "CustomTemplateSearchItemACL",
  "type": "object"
}

Fields:

name

name: str | None = None

user_type

user_type: UserClass | None = None

type

type: ACLType

CustomTemplateSearchItemTeam

Bases: BaseAlbertModel

Show JSON schema:
{
  "$defs": {
    "ACLType": {
      "description": "The kind of access-control entry on a custom template.\n\nAttributes\n----------\nTEAM : str\n    A team-level access entry.\nMEMBER : str\n    A member with edit access.\nOWNER : str\n    An owner with full control.\nVIEWER : str\n    A viewer with read-only access.",
      "enum": [
        "team",
        "member",
        "owner",
        "viewer"
      ],
      "title": "ACLType",
      "type": "string"
    },
    "AccessControlLevel": {
      "description": "Access control levels you can grant users.",
      "enum": [
        "ProjectOwner",
        "ProjectEditor",
        "ProjectViewer",
        "ProjectAllTask",
        "ProjectStrictViewer",
        "ProjectPropertyTask",
        "InventoryOwner",
        "InventoryViewer",
        "CustomTemplateOwner",
        "CustomTemplateViewer",
        "CASFullAccess"
      ],
      "title": "AccessControlLevel",
      "type": "string"
    }
  },
  "properties": {
    "id": {
      "title": "Id",
      "type": "string"
    },
    "name": {
      "title": "Name",
      "type": "string"
    },
    "type": {
      "anyOf": [
        {
          "$ref": "#/$defs/ACLType"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    },
    "fgc": {
      "anyOf": [
        {
          "$ref": "#/$defs/AccessControlLevel"
        },
        {
          "type": "null"
        }
      ],
      "default": null
    }
  },
  "required": [
    "id",
    "name"
  ],
  "title": "CustomTemplateSearchItemTeam",
  "type": "object"
}

Fields:

id

id: str

name

name: str

type

type: ACLType | None = None

fgc

fgc: AccessControlLevel | None = None

CustomTemplateSearchItem

Bases: BaseAlbertModel, HydrationMixin[CustomTemplate]

A lightweight custom template returned by search.

Returned by search, this is a partially populated view of a template optimized for fast lookups. Hydrate it (or call get_by_id) to obtain the full CustomTemplate.

Show JSON schema:
{
  "$defs": {
    "ACLType": {
      "description": "The kind of access-control entry on a custom template.\n\nAttributes\n----------\nTEAM : str\n    A team-level access entry.\nMEMBER : str\n    A member with edit access.\nOWNER : str\n    An owner with full control.\nVIEWER : str\n    A viewer with read-only access.",
      "enum": [
        "team",
        "member",
        "owner",
        "viewer"
      ],
      "title": "ACLType",
      "type": "string"
    },
    "AccessControlLevel": {
      "description": "Access control levels you can grant users.",
      "enum": [
        "ProjectOwner",
        "ProjectEditor",
        "ProjectViewer",
        "ProjectAllTask",
        "ProjectStrictViewer",
        "ProjectPropertyTask",
        "InventoryOwner",
        "InventoryViewer",
        "CustomTemplateOwner",
        "CustomTemplateViewer",
        "CASFullAccess"
      ],
      "title": "AccessControlLevel",
      "type": "string"
    },
    "CustomTemplateSearchItemACL": {
      "properties": {
        "id": {
          "description": "The id of the user for which this ACL applies",
          "title": "Id",
          "type": "string"
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "description": "The Fine-Grain Control Level"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "userType": {
          "anyOf": [
            {
              "$ref": "#/$defs/UserClass"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "type": {
          "$ref": "#/$defs/ACLType"
        }
      },
      "required": [
        "id",
        "type"
      ],
      "title": "CustomTemplateSearchItemACL",
      "type": "object"
    },
    "CustomTemplateSearchItemData": {
      "properties": {
        "Designs": {
          "default": null,
          "items": {
            "$ref": "#/$defs/DesignLink"
          },
          "title": "Designs",
          "type": "array"
        },
        "FormulaInfo": {
          "items": {},
          "title": "Formulainfo",
          "type": "array"
        },
        "TaskRows": {
          "items": {
            "$ref": "#/$defs/EntityLink"
          },
          "title": "Taskrows",
          "type": "array"
        }
      },
      "title": "CustomTemplateSearchItemData",
      "type": "object"
    },
    "CustomTemplateSearchItemTeam": {
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "title": "Name",
          "type": "string"
        },
        "type": {
          "anyOf": [
            {
              "$ref": "#/$defs/ACLType"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        },
        "fgc": {
          "anyOf": [
            {
              "$ref": "#/$defs/AccessControlLevel"
            },
            {
              "type": "null"
            }
          ],
          "default": null
        }
      },
      "required": [
        "id",
        "name"
      ],
      "title": "CustomTemplateSearchItemTeam",
      "type": "object"
    },
    "DesignLink": {
      "description": "A link to a worksheet design with its type.",
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        },
        "type": {
          "$ref": "#/$defs/DesignType",
          "description": "The design type (apps, products, results, or process)."
        }
      },
      "required": [
        "id",
        "type"
      ],
      "title": "DesignLink",
      "type": "object"
    },
    "DesignType": {
      "description": "The section of a Sheet that a Design represents.\n\nA Sheet is organized into stacked sections, each backed by a Design\n([`Design`][albert.resources.sheets.Design]). The type identifies which section:\n\n- ``PRODUCTS``: Product Design, where formulations are built.\n- ``PROCESS``: Process Design.\n- ``RESULTS``: Results, holding Property Tasks and their data.\n- ``APPS``: Apps, holding insights, reporting, and notes.",
      "enum": [
        "apps",
        "products",
        "results",
        "process",
        "reagents"
      ],
      "title": "DesignType",
      "type": "string"
    },
    "EntityLink": {
      "properties": {
        "id": {
          "title": "Id",
          "type": "string"
        },
        "name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Name"
        },
        "category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Category"
        }
      },
      "required": [
        "id"
      ],
      "title": "EntityLink",
      "type": "object"
    },
    "SecurityClass": {
      "description": "The security (access control) class of a resource.\n\nAttributes\n----------\nSHARED : str\n    Accessible to all members of the tenant.\nRESTRICTED : str\n    Access is restricted to specific teams or users.\nCONFIDENTIAL : str\n    Access is limited to designated users only.\nPRIVATE : str\n    Visible only to the owner. Used by Projects.",
      "enum": [
        "shared",
        "restricted",
        "confidential",
        "private"
      ],
      "title": "SecurityClass",
      "type": "string"
    },
    "Status": {
      "description": "The status of a resource.\n\nAttributes\n----------\nACTIVE : str\n    The resource is fully operational and visible in normal operations.\nINACTIVE : str\n    The resource is hidden from normal operations and disabled from use.",
      "enum": [
        "active",
        "inactive"
      ],
      "title": "Status",
      "type": "string"
    },
    "UserClass": {
      "description": "The ACL class level of a user, setting a broad permission tier.\n\nAttributes\n----------\nGUEST : str\n    Most limited access; typically external or temporary users.\nSTANDARD : str\n    Default access level for regular users.\nTRUSTED : str\n    Elevated access above standard users.\nPRIVILEGED : str\n    High access level below full administrators.\nADMIN : str\n    Full administrative access to the tenant.",
      "enum": [
        "guest",
        "standard",
        "trusted",
        "privileged",
        "admin"
      ],
      "title": "UserClass",
      "type": "string"
    }
  },
  "description": "A lightweight custom template returned by search.\n\nReturned by\n[`search`][albert.collections.custom_templates.CustomTemplatesCollection.search],\nthis is a partially populated view of a template optimized for fast lookups.\nHydrate it (or call\n[`get_by_id`][albert.collections.custom_templates.CustomTemplatesCollection.get_by_id])\nto obtain the full [`CustomTemplate`][albert.resources.custom_templates.CustomTemplate].",
  "properties": {
    "name": {
      "description": "The name of the template.",
      "title": "Name",
      "type": "string"
    },
    "albertId": {
      "description": "The Custom Template ID (format ``CTP...``).",
      "title": "Albertid",
      "type": "string"
    },
    "createdByName": {
      "description": "The display name of the user who created the template.",
      "title": "Createdbyname",
      "type": "string"
    },
    "createdAt": {
      "description": "When the template was created.",
      "title": "Createdat",
      "type": "string"
    },
    "category": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The template category.",
      "title": "Category"
    },
    "status": {
      "anyOf": [
        {
          "$ref": "#/$defs/Status"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The template's status."
    },
    "resourceClass": {
      "anyOf": [
        {
          "$ref": "#/$defs/SecurityClass"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The security classification of the template."
    },
    "data": {
      "anyOf": [
        {
          "$ref": "#/$defs/CustomTemplateSearchItemData"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "Partial template data included in search results."
    },
    "acl": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/CustomTemplateSearchItemACL"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The access-control entries on the template.",
      "title": "Acl"
    },
    "team": {
      "anyOf": [
        {
          "items": {
            "$ref": "#/$defs/CustomTemplateSearchItemTeam"
          },
          "type": "array"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "description": "The teams associated with the template.",
      "title": "Team"
    }
  },
  "required": [
    "name",
    "albertId",
    "createdByName",
    "createdAt"
  ],
  "title": "CustomTemplateSearchItem",
  "type": "object"
}

Fields:

name

name: str

The name of the template.

id

The Custom Template ID (format CTP...).

created_by_name

created_by_name: str

The display name of the user who created the template.

created_at

created_at: str

When the template was created.

category

category: str | None = None

The template category.

status

status: Status | None = None

The template's status.

resource_class

resource_class: SecurityClass | None = None

The security classification of the template.

data

data: CustomTemplateSearchItemData | None = None

Partial template data included in search results.

acl

acl: list[CustomTemplateSearchItemACL] | None = None

The access-control entries on the template.

team

team: list[CustomTemplateSearchItemTeam] | None = None

The teams associated with the template.