Skip to content
Roboto
Esc
↑↓navigate↵open⌘Jpreview
On this page

roboto.domain.files.record

Module Contents

DirectoryRecord

class roboto.domain.files.record.DirectoryRecord(/, **data)#View Source

Bases: pydantic.BaseModel

Wire-transmissible representation of a directory within a dataset.

DirectoryRecord represents a logical directory structure within a dataset, containing metadata about the directory’s location and contents. Directories are used to organize files hierarchically within datasets.

Directory records are typically returned when browsing dataset contents or when performing directory-based operations like bulk deletion.

Parameters

data Any

Attributes

DirectoryRecord.association_id

association_id str #

DirectoryRecord.created

created datetime.datetime #

DirectoryRecord.created_by

created_by str #

DirectoryRecord.description

description str | None = None #

DirectoryRecord.directory_id

directory_id str #

DirectoryRecord.fs_type

fs_type FSType #

DirectoryRecord.metadata

metadata dict[str, Any] = None #

DirectoryRecord.modified

modified datetime.datetime #

DirectoryRecord.modified_by

modified_by str #

DirectoryRecord.name

name str #

Name of the directory (the final component of the path).

DirectoryRecord.org_id

org_id str #

DirectoryRecord.origination

origination str #

DirectoryRecord.parent_id

parent_id str | None = None #

DirectoryRecord.relative_path

relative_path str #

DirectoryRecord.status

status FileStatus #

DirectoryRecord.storage_type

storage_type FileStorageType #

DirectoryRecord.tags

tags list[str] = None #

DirectoryRecord.upload_id

upload_id str #

FSType

class roboto.domain.files.record.FSType#View Source

Bases: roboto.compat.StrEnum

File system type enum

Attributes

FSType.Directory

Directory = 'directory' #

FSType.File

File = 'file' #
Link = 'link' #

A pointer to one version of another file, which may live under a different dataset, device, or org.

A link stores no object of its own. Its record’s uri is roboto://file/<target_file_id>?v=<version> and its size is 0; downloading it fetches the target at that version.

FileRecord

class roboto.domain.files.record.FileRecord(/, **data)#View Source

Bases: pydantic.BaseModel

Wire-transmissible representation of a file in the Roboto platform.

FileRecord contains all the metadata and properties associated with a file, including its location, status, ingestion state, and user-defined metadata. This is the data structure used for API communication and persistence.

FileRecord instances are typically created by the platform during file import or upload operations, and are updated as files are processed and modified. The File domain class wraps FileRecord to provide a more convenient interface for file operations.

Parameters

data Any

Attributes

FileRecord.association_id

association_id str #

Properties

FileRecord.bucket

bucket str #

Name of the bucket holding this file’s object.

Raises

This record is a link, which stores no object.

Return type

str

Attributes

FileRecord.created

created datetime.datetime #

FileRecord.created_by

created_by str = '' #

FileRecord.description

description str | None = None #

FileRecord.device_id

device_id str | None = None #

FileRecord.file_id

file_id str #

FileRecord.fs_type

fs_type FSType #

FileRecord.ingestable

ingestable bool = False #

Whether this file is meant to be ingested: its path matched one of its org’s ingestion rules when this version was created or when the file was last renamed or moved, or it has since been partly or fully ingested. A file that is ingestable and ingestion_status not_ingested is awaiting ingestion.

FileRecord.ingestion_status

ingestion_status IngestionStatus #

Properties

is_link bool #

Whether this record is a link to another file rather than a file with an object of its own.

Return type: bool

FileRecord.key

key str #

Key of this file’s object within bucket.

Raises

This record is a link, which stores no object.

Return type

str

Attributes

FileRecord.metadata

metadata dict[str, Any] = None #

FileRecord.modified

modified datetime.datetime #

FileRecord.modified_by

modified_by str #

FileRecord.name

name str #

FileRecord.org_id

org_id str #

FileRecord.origination

origination str = '' #

FileRecord.parent_id

parent_id str | None = None #

FileRecord.relative_path

relative_path str #

FileRecord.size

size int #

FileRecord.status

status FileStatus #

FileRecord.storage_type

storage_type FileStorageType #

FileRecord.tags

tags list[str] = None #

FileRecord.upload_id

upload_id str = 'NO_ID' #

FileRecord.uri

uri str #

FileRecord.version

version int #

FileStatus

class roboto.domain.files.record.FileStatus#View Source

Bases: roboto.compat.StrEnum

Enumeration of possible file status values in the Roboto platform.

File status tracks the lifecycle state of a file from initial upload through to availability for use. This status is managed automatically by the platform and affects file visibility and accessibility.

The typical file lifecycle is: Reserved → Available → (optionally) Deleted.

Attributes

FileStatus.Available

Available = 'available' #

File upload is complete and the file is ready for use.

Files with this status are visible in dataset listings, searchable through the query system, and available for download and processing by actions.

FileStatus.Deleted

Deleted = 'deleted' #

File is marked for deletion and is no longer accessible.

Files with this status are not visible in listings and cannot be accessed. This status may be temporary during the deletion process.

FileStatus.Reserved

Reserved = 'reserved' #

File upload has been initiated but not yet completed.

Files with this status are not yet available for use and are not visible in dataset listings. This is the initial status when an upload begins.

FileStorageType

class roboto.domain.files.record.FileStorageType#View Source

Bases: roboto.compat.StrEnum

Enumeration of file storage types in the Roboto platform.

Storage type indicates how the file was added to the platform and affects access patterns and permissions. This information is used internally for credential management and access control.

Attributes

FileStorageType.S3Directory

S3Directory = 'directory' #

This node is a virtual directory.

FileStorageType.S3Imported

S3Imported = 'imported' #

File was imported from a read-only customer-managed S3 bucket.

These files remain in the customer’s bucket and are accessed using customer-provided credentials. The customer retains full control over the file storage and access permissions.

FileStorageType.S3Uploaded

S3Uploaded = 'uploaded' #

File was uploaded to a Roboto-managed or customer read/write bucket.

These files were explicitly uploaded through the Roboto platform to either a Roboto-managed bucket or a customer’s bring-your-own read/write bucket. Access is managed through Roboto’s credential system.

FileTag

class roboto.domain.files.record.FileTag(*args, **kwds)#View Source

Bases: enum.Enum

Enumeration of system-defined file tag types.

These tags are used internally by the platform for indexing and organizing files. They are automatically applied during file operations and should not be manually modified by users.

Attributes

FileTag.AssociationId

AssociationId = 'association_id' #

Tag containing the ID of the dataset, device, or org a file is associated with.

FileTag.CommonPrefix

CommonPrefix = 'common_prefix' #

Tag containing the common path prefix for files in a batch operation.

FileTag.DatasetId

DatasetId = 'dataset_id' #

Tag containing the ID of the dataset that contains this file.

Deprecated in favour of AssociationId, which names a file’s dataset, device, or org alike. The platform still sets it on its own server-side copies of dataset files.

FileTag.OrgId

OrgId = 'org_id' #

Tag containing the organization ID that owns this file.

FileTag.TransactionId

TransactionId = 'transaction_id' #

Tag containing the transaction ID for files uploaded in a batch.

IngestionStatus

class roboto.domain.files.record.IngestionStatus#View Source

Bases: roboto.compat.StrEnum

Enumeration of file ingestion status values in the Roboto platform.

Ingestion status tracks whether a file’s data has been processed and extracted into topics for analysis and visualization. This status determines what platform features are available for the file and whether it can trigger automated workflows.

File ingestion happens as a post-upload processing step. Roboto supports many common robotics log formats (ROS bags, MCAP files, ULOG files, etc.) out-of-the-box. Custom ingestion actions can be written for other formats.

When writing custom ingestion actions, be sure to update the file’s ingestion status to mark it as fully ingested. This enables triggers and other automated workflows that depend on complete ingestion.

Ingested files have first-class visualization support and can be queried through the topic data system.

Attributes

IngestionStatus.Ingested

Ingested = 'ingested' #

All topics from this file have been fully processed and recorded.

Files with this status have complete topic data available for visualization, analysis, and querying. They are eligible for post-ingestion triggers and automated workflows that depend on complete data extraction.

IngestionStatus.NotIngested

NotIngested = 'not_ingested' #

No topics from this file have been processed or recorded.

Files with this status have not undergone data extraction. They cannot be visualized through the topic system and are not eligible for topic-based triggers or analysis workflows.

IngestionStatus.PartlyIngested

PartlyIngested = 'partly_ingested' #

Some but not all topics from this file have been processed.

Files with this status have at least one topic record but ingestion is incomplete. Some visualization and analysis features may be available, but the file is not yet eligible for post-ingestion triggers.

is_directory()

roboto.domain.files.record.is_directory(record)#View Source

Parameters

Return type

TypeGuard[DirectoryRecord]

is_file()

roboto.domain.files.record.is_file(record)#View Source

Parameters

Return type

TypeGuard[FileRecord]

Was this page helpful?